ASCII

bilgipedi.com.tr sitesinden
ASCII
USASCII code chart.png
1972 öncesi bir yazıcı kılavuzundan ASCII çizelgesi
MIME / IANAus-ascii
Takma ad(lar)ISO-IR-006, ANSI_X3.4-1968, ANSI_X3.4-1986, ISO_646.irv:1991, ISO646-US, us, IBM367, cp367
Dil(ler)İngilizce
SınıflandırmaISO/IEC 646 serisi
Uzantılar
  • Unicode
  • ISO/IEC 8859 (seri)
  • KOI-8
  • OEM (seri)
  • Windows-125x (seri)
  • Diğerleri
ÖncesindeITA 2, FIELDATA
Tarafından başarıldıISO/IEC 8859, ISO/IEC 10646 (Unicode)

ASCII (/ˈæsk/ (listen) ASS-kee), American Standard Code for Information Interchange'den kısaltılmış olup, elektronik iletişim için bir karakter kodlama standardıdır. ASCII kodları bilgisayarlarda, telekomünikasyon ekipmanlarında ve diğer cihazlarda metni temsil eder. Çoğu modern karakter kodlama şeması, birçok ek karakteri desteklemelerine rağmen ASCII'yi temel alır.

İnternet Atanmış Sayılar Kurumu (IANA) bu karakter kodlaması için US-ASCII adını tercih etmektedir.

ASCII, IEEE kilometre taşlarından biridir.

ASCII (İngilizce: American Standard Code for Information Interchange, Türkçe: Bilgi Değişimi İçin Amerikan Standart Kodlama Sistemi) Latin alfabesi üzerine kurulu 7 bitlik bir karakter kümesidir. İlk kez 1963 yılında ANSI tarafından standart olarak sunulmuştur.

ASCII'de 33 tane basılmayan kontrol karakteri ve 95 tane basılan karakter bulunur. Kontrol karakterleri metnin akışını kontrol eden, ekranda çıkmayan karakterlerdir. Basılan karakterler ise ekranda görünen, okuduğumuz metni oluşturan karakterlerdir. ASCII'nin basılan karakterleri aşağıda belirtilmiştir.

ASCII Code Chart.svg

Genel bakış

ASCII telgraf kodundan geliştirilmiştir. İlk ticari kullanımı Bell veri hizmetleri tarafından tanıtılan yedi bitlik bir teleprinter kodu olarak olmuştur. ASCII standardı üzerindeki çalışmalar Mayıs 1961'de Amerikan Standartlar Birliği'nin (ASA) (şimdi Amerikan Ulusal Standartlar Enstitüsü veya ANSI) X3.2 alt komitesinin ilk toplantısıyla başladı. Standardın ilk baskısı 1963 yılında yayınlandı, 1967 yılında büyük bir revizyondan geçti ve 1986 yılında en son güncellemesini yaşadı. Daha önceki telgraf kodlarıyla karşılaştırıldığında, önerilen Bell kodu ve ASCII, listelerin daha rahat sıralanması (yani alfabetik hale getirilmesi) için düzenlenmiş ve teleprinter dışındaki cihazlar için özellikler eklenmiştir.

Ağ Değişimi için ASCII formatının kullanımı 1969 yılında tanımlanmıştır. Bu belge 2015 yılında resmi olarak bir İnternet Standardına yükseltilmiştir.

Başlangıçta İngiliz alfabesini temel alan ASCII, yukarıdaki ASCII tablosunda gösterildiği gibi, belirtilen 128 karakteri yedi bitlik tam sayılara kodlar. Kodlanan karakterlerin doksan beşi yazdırılabilir: bunlar arasında 0'dan 9'a kadar rakamlar, a'dan z'ye küçük harfler, A'dan Z'ye büyük harfler ve noktalama işaretleri bulunur. Buna ek olarak, orijinal ASCII spesifikasyonu, Teletype makinelerinden kaynaklanan 33 yazdırılmayan kontrol kodu içeriyordu; bunların çoğu artık kullanılmamaktadır, ancak satır başı, satır besleme ve sekme kodları gibi birkaçı hala yaygın olarak kullanılmaktadır.

Örneğin, küçük i harfi ASCII kodlamasında ikili 1101001 = onaltılık 69 (i dokuzuncu harftir) = ondalık 105 ile gösterilir.

Tarihçe

ASCII (1963). Eşdeğer kontrollerin kontrol resimleri varsa gösterilir, yoksa gri bir nokta konur.

Amerikan Standart Bilgi Değişim Kodu (ASCII), Amerikan Standartlar Birliği'nin (ASA) X3 komitesi olarak adlandırılan bir komitesinin himayesinde, X3.2 (daha sonra X3L2) alt komitesi ve daha sonra bu alt komitenin X3.2.4 çalışma grubu (şimdi INCITS) tarafından geliştirilmiştir. ASA daha sonra Amerika Birleşik Devletleri Standartlar Enstitüsü (USASI) ve nihayetinde Amerikan Ulusal Standartlar Enstitüsü (ANSI) haline geldi.

Diğer özel karakterler ve kontrol kodlarının doldurulmasıyla ASCII, ASA X3.4-1963 olarak yayımlandı ve geriye herhangi bir anlam atanmamış, gelecekteki standardizasyon için ayrılmış 28 kod konumu ve atanmamış bir kontrol kodu kaldı. O dönemde küçük harf alfabesi yerine daha fazla kontrol karakteri olup olmaması gerektiği konusunda bazı tartışmalar vardı. Bu kararsızlık uzun sürmedi: Mayıs 1963'te CCITT Yeni Telgraf Alfabesi Çalışma Grubu 6. ve 7. çubuklara küçük harf karakterlerinin atanmasını önerdi ve Uluslararası Standartlar Örgütü TC 97 SC 2 Ekim ayında bu değişikliği taslak standardına dahil etmek için oy kullandı. X3.2.4 görev grubu, Mayıs 1963 toplantısında ASCII'de yapılan değişikliği onayladı. Küçük harflerin 6. ve 7. çubuklara yerleştirilmesi, karakterlerin büyük harflerden tek bir bitle farklı olmasına neden olmuş, bu da büyük/küçük harfe duyarlı olmayan karakter eşleştirmesini ve klavye ve yazıcıların yapımını kolaylaştırmıştır.

X3 komitesi, başka yeni karakterler (ayraç ve dikey çubuk karakterleri), bazı kontrol karakterlerinin yeniden adlandırılması (SOM başlık başlangıcı (SOH) oldu) ve diğerlerinin taşınması veya kaldırılması (RU kaldırıldı) dahil olmak üzere başka değişiklikler de yaptı. ASCII daha sonra USAS X3.4-1967, ardından USAS X3.4-1968, ANSI X3.4-1977 ve son olarak ANSI X3.4-1986 olarak güncellenmiştir.

ASCII standardının revizyonları:

  • ASA X3.4-1963
  • ASA X3.4-1965 (onaylandı, ancak yayınlanmadı, yine de IBM 2260 ve 2265 Ekran İstasyonları ve IBM 2848 Ekran Kontrolü tarafından kullanıldı)
  • USAS X3.4-1967
  • USAS X3.4-1968
  • ANSI X3.4-1977
  • ANSI X3.4-1986
  • ANSI X3.4-1986 (R1992)
  • ANSI X3.4-1986 (R1997)
  • ANSI INCITS 4-1986 (R2002)
  • ANSI INCITS 4-1986 (R2007)
  • (ANSI) INCITS 4-1986[R2012]
  • (ANSI) INCITS 4-1986[R2017]

X3.15 standardında, X3 komitesi ASCII'nin nasıl iletilmesi gerektiğini (önce en az anlamlı bit) ve delikli banda nasıl kaydedilmesi gerektiğini de ele aldı. Manyetik bant için 9 izli bir standart önerdiler ve bazı delikli kart formatlarıyla başa çıkmaya çalıştılar.

Tasarım hususları

Bit genişliği

X3.2 alt komitesi ASCII'yi daha önceki teleprinter kodlama sistemlerini temel alarak tasarlamıştır. Diğer karakter kodlamaları gibi ASCII de dijital bit desenleri ve karakter sembolleri (yani grafemler ve kontrol karakterleri) arasında bir yazışma belirtir. Bu, dijital cihazların birbirleriyle iletişim kurmasına ve yazılı dil gibi karakter odaklı bilgileri işlemesine, saklamasına ve iletmesine olanak tanır. ASCII geliştirilmeden önce, kullanılan kodlamalar 26 alfabetik karakter, 10 sayısal rakam ve 11 ila 25 arasında özel grafik sembolü içeriyordu. Tüm bunları ve 1924 tarihli Comité Consultatif International Téléphonique et Télégraphique (CCITT) Uluslararası Telgraf Alfabesi No. 2 (ITA2) standardı, FIELDATA (1956) ve erken EBCDIC (1963) ile uyumlu kontrol karakterlerini dahil etmek için ASCII için 64'ten fazla kod gerekliydi.

ITA2 de Émile Baudot'nun 1870 yılında icat ettiği ve 1874 yılında patentini aldığı 5 bitlik telgraf koduna dayanıyordu.

Komite, 64'ten fazla kodun altı bitlik bir kodla temsil edilmesini sağlayacak bir kaydırma işlevi (ITA2'deki gibi) olasılığını tartıştı. Kaydırmalı bir kodda, bazı karakter kodları sonraki karakter kodları için seçenekler arasındaki tercihleri belirler. Kompakt kodlamaya izin verir, ancak veri iletimi için daha az güvenilirdir, çünkü kaydırma kodunun iletilmesindeki bir hata genellikle iletimin uzun bir bölümünü okunamaz hale getirir. Standartlar komitesi kaydırmaya karşı karar verdi ve böylece ASCII en az yedi bitlik bir kod gerektirdi.

Komite sekiz bitlik bir kodu da düşündü, çünkü sekiz bit (sekizli) iki dört bitlik desenin ikili kodlu ondalıkla iki rakamı verimli bir şekilde kodlamasına izin verecekti. Ancak bu, yedi bit yeterli olabilecekken tüm veri iletiminde sekiz bit gönderilmesini gerektirecekti. Komite, veri iletimiyle ilgili maliyetleri en aza indirmek için yedi bitlik bir kod kullanmaya karar verdi. O dönemde delikli bant bir pozisyonda sekiz bit kaydedebildiğinden, istenirse hata kontrolü için bir eşlik bitine de izin veriyordu. Eşlik kontrolü kullanmayan sekiz bitlik makineler (yerel veri türü olarak sekizli) tipik olarak sekizinci biti 0 olarak ayarlıyordu.

Dahili organizasyon

Kodun kendisi, tanımlama kolaylığı için çoğu kontrol kodu bir arada ve tüm grafik kodları bir arada olacak şekilde düzenlenmişti. ASCII çubukları olarak adlandırılan ilk iki çubuk (32 konum) kontrol karakterleri için ayrılmıştı. Sıralamayı kolaylaştırmak için "boşluk" karakterinin grafiklerden önce gelmesi gerekiyordu, bu yüzden 20hex pozisyonu oldu; aynı nedenle, ayırıcı olarak yaygın olarak kullanılan birçok özel işaret rakamlardan önce yerleştirildi. Komite 64 karakterlik büyük harfli alfabeleri desteklemenin önemli olduğuna karar verdi ve DEC SIXBIT kodunda (1963) yapıldığı gibi ASCII'yi kolayca kullanılabilir 64 karakterlik bir grafik kod setine indirgenebilecek şekilde düzenlemeyi seçti. Bu nedenle küçük harfler büyük harflerle iç içe geçmemiştir. Küçük harfler ve diğer grafikler için mevcut seçenekleri korumak amacıyla, özel ve sayısal kodlar harflerden önce düzenlenmiş ve A harfi ilgili İngiliz standardının taslağına uyması için 41hex konumuna yerleştirilmiştir. 0-9 rakamlarının başına 011 eklenmiştir, ancak kalan 4 bit ikili kodda ilgili değerlerine karşılık gelir, bu da ikili kodlu ondalıkla dönüştürmeyi kolaylaştırır.

Alfanümerik olmayan karakterlerin çoğu, daktilolardaki kaydırılmış konumlarına karşılık gelecek şekilde konumlandırılmıştır; önemli bir incelik, bunların elektrikli daktilolara değil mekanik daktilolara dayanmasıdır. Mekanik daktilolar, kaydırma tuşu olan ilk daktilo olan Remington No. 2 (1878) tarafından belirlenen fiili standardı takip etti ve 23456789'un kaydırılmış değerleri "#$%_&'() idi - ilk daktilolar 0 ve 1'i atlayarak bunun yerine O (büyük harf o) ve l (küçük harf L) kullandı, ancak 1! ve 0) çiftleri, 0 ve 1 yaygınlaştıktan sonra standart hale geldi. Böylece, ASCII'de !"#$% ikinci çubuğa, bitişik çubuktaki 1-5 rakamlarına karşılık gelen 1-5 konumlarına yerleştirildi. Ancak parantezler 9 ve 0'a karşılık gelemezdi, çünkü 0'a karşılık gelen yer boşluk karakteri tarafından alınmıştı. Bu durum, 6'dan _ (alt çizgi) kaldırılarak ve kalan karakterler kaydırılarak, parantezleri 8 ve 9'a yerleştiren birçok Avrupa daktilosuna karşılık gelecek şekilde ayarlandı. Daktilolardan kaynaklanan bu farklılık, geleneksel mekanik daktilolardan farklı olarak ASCII'ye karşılık gelen sola kaydırılmış düzeni kullanan Teletype Model 33 başta olmak üzere bit eşleştirilmiş klavyelere yol açtı.

Başta IBM Selectric (1961) olmak üzere elektrikli daktilolar, IBM PC (1981) ve özellikle Model M'nin (1984) ardından bilgisayarlarda fiili standart haline gelen biraz farklı bir düzen kullanmıştır ve bu nedenle modern klavyelerdeki semboller için kaydırma değerleri ASCII tablosuna önceki klavyeler kadar yakın değildir. /? çifti de No. 2'den kalmadır ve ,< .> çiftleri bazı klavyelerde kullanılmıştır (No. 2 dahil diğerleri , (virgül) veya . (nokta) harflerini kaydırmamışlardır, böylece kaydırma yapmadan büyük harfle kullanılabilirler). Bununla birlikte, ASCII ;: çiftini (No. 2'den kalma) ayırdı ve matematiksel sembolleri (çeşitli gelenekler, genellikle -* =+) :* ;+ -= olarak yeniden düzenledi.

O zamanlar yaygın olan bazı daktilo karakterleri, özellikle ½ ¼ ¢ dahil edilmezken, ^ ` ~ uluslararası kullanım için aksan olarak ve < > matematiksel kullanım için basit çizgi karakterleri \ | ile birlikte (yaygın /'ye ek olarak) dahil edildi. Kıta Avrupası'nda @ sembolü kullanılmıyordu ve komite Fransızca varyasyonunda bunun yerini aksanlı À'nın almasını bekliyordu, bu nedenle @, A harfinden hemen önce 40hex konumuna yerleştirildi.

Veri iletimi için gerekli olduğu düşünülen kontrol kodları mesaj başlangıcı (SOM), adres sonu (EOA), mesaj sonu (EOM), iletim sonu (EOT), "sen kimsin?" (WRU), "sen misin?" (RU), ayrılmış bir cihaz kontrolü (DC0), senkron boşta (SYNC) ve onay (ACK). Bunlar, bit desenleri arasındaki Hamming mesafesini en üst düzeye çıkaracak şekilde konumlandırılmıştır.

Karakter sırası

ASCII-kod sırası ASCIIbetical sıra olarak da adlandırılır. Verilerin harmanlanması bazen "standart" alfabetik sıra (harmanlama sırası) yerine bu sıraya göre yapılır. ASCII sıralamasındaki ana sapmalar şunlardır:

  • Tüm büyük harfler küçük harflerden önce gelir; örneğin "Z", "a "dan önce gelir
  • Rakamlar ve birçok noktalama işareti harflerden önce gelir

Bir ara sıra, ASCII değerlerini karşılaştırmadan önce büyük harfleri küçük harfe dönüştürür.

Karakter grupları

Kontrol karakterleri

ASCII ilk 32 kodu (0-31 ondalık sayılar) kontrol karakterleri için ayırır: kodlar aslında yazdırılabilir bilgileri temsil etmek için değil, ASCII kullanan cihazları (yazıcılar gibi) kontrol etmek veya manyetik bantta depolananlar gibi veri akışları hakkında meta bilgi sağlamak için tasarlanmıştır.

Örneğin, 10. karakter "satır besleme" işlevini (yazıcının kağıdı ilerletmesini sağlar) ve 8. karakter "geri alma" işlevini temsil eder. RFC 2822 satır başı, satır besleme ya da beyaz boşluk içermeyen kontrol karakterlerini beyaz boşluk içermeyen kontrol karakterleri olarak adlandırır. Temel satır odaklı biçimlendirmeyi öngören kontrol karakterleri dışında, ASCII bir belge içindeki metnin yapısını veya görünümünü tanımlamak için herhangi bir mekanizma tanımlamaz. İşaretleme dilleri gibi diğer şemalar, sayfa ve belge düzeni ve biçimlendirmesini ele alır.

Orijinal ASCII standardı her kontrol karakteri için sadece kısa tanımlayıcı ifadeler kullanmıştır. Bunun neden olduğu belirsizlik bazen kasıtlıydı, örneğin bir karakterin bir terminal bağlantısında veri akışından biraz farklı kullanılması gibi, bazen de kazara, örneğin "delete" kelimesinin anlamı gibi.

Muhtemelen bu karakterlerin yorumlanmasını etkileyen en etkili tek cihaz, mevcut bir kağıt bant okuyucu / delme seçeneğine sahip bir baskı terminali olan Teletype Model 33 ASR idi. Kağıt bant 1980'lere kadar uzun süreli program depolama için çok popüler bir araçtı, manyetik banttan daha az maliyetli ve bazı yönlerden daha az kırılgandı. Özellikle, 17 (control-Q, DC1, XON olarak da bilinir), 19 (control-S, DC3, XOFF olarak da bilinir) ve 127 (delete) kodları için Teletype Model 33 makine atamaları fiili standartlar haline geldi. Model 33 ayrıca kontrol-G'nin (kod 7, BEL, operatörü sesli olarak uyarmak anlamına gelir) tanımını tam anlamıyla alması açısından da dikkate değerdi, çünkü ünite bir BEL karakteri aldığında çaldığı gerçek bir zil içeriyordu. O tuşunun üst kısmında sol ok sembolü de bulunduğundan (ASCII-1963'te alt çizgi yerine bu karakter vardı), "önceki karakteri sil" olarak yorumlanan kod 15'in (control-O, shift in) uyumlu olmayan bir kullanımı da birçok ilk zaman paylaşımlı sistem tarafından benimsendi, ancak sonunda ihmal edildi.

Otomatik kağıt teyp okuyucu ile donatılmış bir Teletype 33 ASR bir kontrol-S (XOFF, iletim kapalı kısaltması) aldığında, teyp okuyucunun durmasına neden olur; kontrol-Q (XON, iletim açık) alınması teyp okuyucunun devam etmesine neden olur. Akış kontrol tekniği olarak adlandırılan bu teknik, birçok ilk bilgisayar işletim sistemi tarafından, göndericiyi yaklaşan arabellek taşması nedeniyle iletimi durdurması için uyaran bir "el sıkışma" sinyali olarak benimsenmiştir; günümüzde birçok sistemde manuel çıkış kontrol tekniği olarak varlığını sürdürmektedir. Bazı sistemlerde, kontrol-S anlamını korur ancak kontrol-Q, çıkışı devam ettirmek için ikinci bir kontrol-S ile değiştirilir.

33 ASR ayrıca teyp delgisini başlatmak ve durdurmak için control-R (DC2) ve control-T (DC4) kullanacak şekilde yapılandırılabilir; bu işlevle donatılmış bazı ünitelerde, harfin üzerindeki tuş kapağında karşılık gelen kontrol karakteri sırasıyla TAPE ve TAPE idi.

Delete vs backspace

Teletype, yazı kafasını geriye doğru hareket ettiremediği için klavyesinde BS (backspace) göndermek için bir tuş yoktu. Bunun yerine, üzerinde şöyle yazan bir tuş vardı OVMAK kod 127'yi (DEL) gönderiyordu. Bu tuşun amacı elle girilen bir kağıt banttaki hataları silmekti: operatörün bant zımbası üzerindeki bir düğmeye basarak bantı yedeklemesi, ardından tüm delikleri delen ve hatayı göz ardı edilmesi amaçlanan bir karakterle değiştiren silme işlemini yazması gerekiyordu. Teletipler genellikle Digital Equipment Corporation'ın (DEC) daha ucuz bilgisayarlarıyla kullanılıyordu; bu sistemler mevcut olan tuşları kullanmak zorundaydı ve bu nedenle DEL kodu önceki karakteri silmek için atanmıştı. Bu nedenle, DEC video terminalleri (varsayılan olarak) "Backspace" olarak işaretlenmiş tuş için DEL kodunu gönderirken, "Delete" olarak işaretlenmiş ayrı bir tuş bir kaçış dizisi gönderir; diğer birçok rakip terminal backspace tuşu için bir BS kodu gönderir.

Unix terminal sürücüsü bir önceki karakteri silmek için sadece bir kod kullanabiliyordu, bu BS ya da DEL olarak ayarlanabiliyordu, ancak her ikisini birden kullanamıyordu, bu da kullanıcıların hangi terminali kullandıklarına bağlı olarak karar vermek zorunda kaldıkları tekrar eden belirsizlik durumlarına neden oluyordu (ksh, bash ve zsh gibi satır düzenlemeye izin veren kabuklar her ikisini de anlıyordu). Hiçbir tuşun bir BS kodu göndermediği varsayımı, control+H'nin GNU Emacs'taki "help" önek komutu gibi başka amaçlar için kullanılmasına izin verdi.

Kaçış

Daha birçok kontrol koduna orijinallerinden oldukça farklı anlamlar yüklenmiştir. Örneğin "kaçış" karakteri (ESC, kod 27), başlangıçta diğer kontrol karakterlerinin anlamlarını, bir "kaçış dizisini" çağırmak yerine değişmezler olarak gönderilmesine izin vermek için tasarlanmıştır. Bu, URL kodlamalarında, C dili dizelerinde ve belirli karakterlerin ayrılmış bir anlama sahip olduğu diğer sistemlerde karşılaşılan "escape" ile aynı anlamdadır. Zaman içinde bu yorumlama benimsenmiş ve sonunda değiştirilmiştir.

Modern kullanımda, terminale gönderilen bir ESC genellikle ECMA-48 (1972) ve ardılları tarafından "ANSI kaçış kodu" (ya da daha doğru bir ifadeyle "kontrol dizisi tanıtıcısı") olarak adlandırılan ve ESC ile başlayıp "[" (sol ayraç) karakteriyle devam eden bir komut dizisinin başlangıcını belirtir. Buna karşılık, terminalden gönderilen bir ESC çoğunlukla TECO ve vi metin editörlerinde olduğu gibi bir işlemi veya özel modu sonlandırmak için kullanılan bant dışı bir karakter olarak kullanılır. Grafik kullanıcı arayüzü (GUI) ve pencereleme sistemlerinde, ESC genellikle bir uygulamanın mevcut işlemini iptal etmesine veya tamamen çıkmasına (sonlandırmasına) neden olur.

Satır sonu

Birçok kontrol karakterinin doğasında var olan belirsizlik, tarihsel kullanımlarıyla birleştiğinde, "düz metin" dosyalarının sistemler arasında aktarılması sırasında sorunlara yol açmıştır. Bunun en iyi örneği çeşitli işletim sistemlerindeki satırsonu problemidir. Teletype makineleri bir metin satırının hem "satır başı" (yazıcı kafasını satırın başına götürür) hem de "satır besleme" (yazıcı kafasını hareket ettirmeden kağıdı bir satır ilerletir) ile sonlandırılmasını gerektiriyordu. "Taşıyıcı dönüşü" adı, manuel daktiloda şeride çarpan yazı çubukları sabit kalırken kağıdı tutan taşıyıcının hareket etmesi gerçeğinden gelir. Kağıdı bir sonraki satıra yerleştirmek için tüm taşıyıcının sağa doğru itilmesi (geri döndürülmesi) gerekiyordu.

DEC işletim sistemleri (OS/8, RT-11, RSX-11, RSTS, TOPS-10, vb.) konsol cihazının (orijinal olarak Teletype makineleri) çalışabilmesi için satır sonunu işaretlemek üzere her iki karakteri de kullanıyordu. "Cam TTY'ler" (daha sonra CRT'ler veya "aptal terminaller" olarak adlandırıldı) ortaya çıktığında, bu gelenek o kadar iyi yerleşmişti ki geriye dönük uyumluluk bunu takip etmeye devam etmeyi gerektiriyordu. Gary Kildall CP/M'i yarattığında, DEC'in RT-11 işletim sisteminde kullanılan bazı komut satırı arayüz kurallarından esinlenmişti.

PC DOS'un 1981'de piyasaya sürülmesine kadar IBM'in bu konuda hiçbir etkisi olmadı çünkü 1970'lerdeki işletim sistemleri ASCII yerine EBCDIC kodlamasını kullanıyordu ve "satır başı" kavramının anlamsız olduğu delikli kart girişi ve satır yazıcı çıkışına yönelikti. IBM'in PC DOS'u (Microsoft tarafından MS-DOS olarak da pazarlanmaktadır) CP/M'e gevşek bir şekilde dayanması nedeniyle bu geleneği miras almıştır ve Windows da bunu MS-DOS'tan miras almıştır.

Bir satırın sonunu işaretlemek için iki karaktere ihtiyaç duymak, her bir karakterle tek başına karşılaşıldığında nasıl yorumlanacağı konusunda gereksiz karmaşıklık ve belirsizlik yaratır. İşleri basitleştirmek için, Multics'te dosyalar dahil düz metin veri akışları satır sonlandırıcı olarak yalnızca satır beslemesini (LF) kullandı. Unix ve Unix benzeri sistemler ve Amiga sistemleri bu kuralı Multics'ten almıştır. Öte yandan, orijinal Macintosh OS, Apple DOS ve ProDOS satır sonlandırıcı olarak tek başına satır başı (CR) kullanıyordu; ancak Apple artık bu eski işletim sistemlerini Unix tabanlı macOS işletim sistemiyle değiştirdiğinden, artık satır beslemesi (LF) de kullanıyorlar. Radio Shack TRS-80 de satırları sonlandırmak için tek bir CR kullanıyordu.

ARPANET'e bağlı bilgisayarlar arasında CR-LF satır sonlarını kullanan TOPS-10 ve TENEX gibi işletim sistemlerini çalıştıran makineler; LF satır sonlarını kullanan Multics gibi işletim sistemlerini çalıştıran makineler; ve satırları bir karakter sayısı ve ardından satırın karakterleri olarak temsil eden ve ASCII kodlaması yerine EBCDIC kullanan OS/360 gibi işletim sistemlerini çalıştıran makineler vardı. Telnet protokolü bir ASCII "Ağ Sanal Terminali" (NVT) tanımladı, böylece farklı satır sonu kurallarına ve karakter setlerine sahip ana bilgisayarlar arasındaki bağlantılar ağ üzerinden standart bir metin formatı iletilerek desteklenebildi. Telnet, ASCII ile birlikte CR-LF satır sonlarını kullanıyordu ve diğer kuralları kullanan yazılımlar yerel kurallar ile NVT arasında çeviri yapıyordu. Dosya Aktarım Protokolü, komutları iletirken ve varsayılan ASCII modunda veri aktarırken kullanılmak üzere Ağ Sanal Terminali kullanımı da dahil olmak üzere Telnet protokolünü benimsemiştir. Bu, NVT'nin CR-LF satır sonu kuralını kullanmayan sistemlerde bu protokollerin ve E-posta ve World Wide Web için kullanılanlar gibi diğer ağ protokollerinin uygulanmasına karmaşıklık katar.

ASCII tablosundaki 0-31 arasındaki sayılar, yazıcı gibi bazı çevresel aygıtları denetlemek için kullanılan denetim karakterlerine atanmıştır. Örneğin, 12 form besleme/yeni sayfa işlevine ayrılmıştır. Bu komut yazıcıya bir sonraki sayfanın başına atlama bilgisi verir.

ASCII yazdırma dışı denetim karakterleri tablosu
Ondalık 	Karakter 		Ondalık 	Karakter
0 	boş 		                16 	veri bağlantısından çık
1 	başlık başlangıcı 		17 	aygıt denetimi 1
2 	metin başlangıcı 		18 	aygıt denetimi 2
3 	metin sonu 		        19 	aygıt denetimi 3
4 	aktarım sonu 		        20 	aygıt denetimi 4
5 	sorgu 		                21 	olumsuz bildirim
6 	bildirim 		        22 	zaman uyumlu boşta kalma
7 	zil 		                23 	aktarım bloğu sonu
8 	geri al 		        24 	iptal
9 	yatay sekme 		        25 	ortam sonu
10 	satır besleme/yeni satır 	26 	değiştir
11 	dikey sekme 		        27 	çık
12 	form besleme/yeni sayfa 	28 	dosya ayırıcısı
13 	satır başı 		        29 	grup ayırıcısı
14 	dışarı kaydır 		        30 	kayıt ayırıcısı
15 	içeri kaydır 		        31 	birim ayırıcısı 

Dosya/akış sonu

PDP-6 monitörü ve onun PDP-10 halefi TOPS-10, terminalden giriş için dosya sonu göstergesi olarak control-Z (SUB) kullanıyordu. CP/M gibi bazı işletim sistemleri dosya uzunluğunu yalnızca disk blokları biriminde izler ve control-Z'yi dosyadaki gerçek metnin sonunu işaretlemek için kullanırdı. Bu nedenlerden dolayı, EOF veya dosya sonu, halk arasında ve geleneksel olarak SUBstitute yerine control-Z için üç harfli bir kısaltma olarak kullanılmıştır. Kontrol-C olarak da bilinen metin sonu kodu (ETX) çeşitli nedenlerden dolayı uygun değildi, ancak bir dosyayı sonlandırmak için kontrol kodu olarak Z'yi kullanmak alfabenin sonundaki konumuna benzer ve çok uygun bir anımsatıcı yardımcı olarak hizmet eder. Tarihsel olarak yaygın ve hala yaygın olan bir kural, genellikle klavyeden gelen bir giriş veri akışı aracılığıyla bir programı kesmek ve durdurmak için ETX kod kuralını kullanır.

C kütüphanesinde ve Unix kurallarında, metin dizelerini sonlandırmak için null karakteri kullanılır; bu tür null sonlandırmalı dizeler ASCIZ veya ASCIIZ olarak kısaltılabilir, burada Z "sıfır" anlamına gelir.

Kontrol kodu tablosu

İkili Ekim Aralık Altıgen Kısaltma Unicode Kontrol Resimleri Caret notasyonu C Kaçış Dizileri İsim (1967)
1963 1965 1967
000 0000 000 0 00 NULL NUL ^@ \0 Null
000 0001 001 1 01 SOM SOH ^A Başlığın Başlangıcı
000 0010 002 2 02 EOA STX ^B Metin Başlangıcı
000 0011 003 3 03 EOM ETX ^C Metnin Sonu
000 0100 004 4 04 EOT ^D İletim Sonu
000 0101 005 5 05 WRU ENQ ^E Soruşturma
000 0110 006 6 06 RU ACK ^F Teşekkür
000 0111 007 7 07 ZİL BEL ^G \a Bell
000 1000 010 8 08 FE0 BS ^H \b Backspace
000 1001 011 9 09 HT/SK HT ^I \t Yatay Sekme
000 1010 012 10 0A LF ^J \n Satır Besleme
000 1011 013 11 0B VTAB VT ^K \v Dikey Sekme
000 1100 014 12 0C FF ^L \f Form Besleme
000 1101 015 13 0D CR ^M \r Şaryo Dönüşü
000 1110 016 14 0E SO ^N Vardiya Çıkışı
000 1111 017 15 0F SI ^O Vardiya Değişimi
001 0000 020 16 10 DC0 DLE ^P Veri Bağlantısından Kaçış
001 0001 021 17 11 DC1 ^Q Cihaz Kontrolü 1 (genellikle XON)
001 0010 022 18 12 DC2 ^R Cihaz Kontrolü 2
001 0011 023 19 13 DC3 ^S Cihaz Kontrolü 3 (genellikle XOFF)
001 0100 024 20 14 DC4 ^T Cihaz Kontrolü 4
001 0101 025 21 15 ERR NAK ^U Olumsuz Onay
001 0110 026 22 16 SYNC SYN ^V Senkron Boşta
001 0111 027 23 17 LEM ETB ^W İletim Bloğunun Sonu
001 1000 030 24 18 S0 CAN ^X İptal
001 1001 031 25 19 S1 EM ^Y Medyanın Sonu
001 1010 032 26 1A S2 SS SUB ^Z Yedek
001 1011 033 27 1B S3 ESC ^[ \e Kaçış
001 1100 034 28 1C S4 FS ^\ Dosya Ayırıcı
001 1101 035 29 1D S5 GS ^] Grup Ayırıcı
001 1110 036 30 1E S6 RS ^^ Kayıt Ayırıcı
001 1111 037 31 1F S7 ABD ^_ Birim Ayırıcı
111 1111 177 127 7F DEL ^? Silme

ISO 2047 grafikleri veya onaltılık sayılar gibi diğer gösterimler uzman ekipmanlar tarafından kullanılabilir.

Yazdırılabilir karakterler

Yazdırılabilir karakterler olarak bilinen 20hex ila 7Ehex kodları, harfleri, rakamları, noktalama işaretlerini ve birkaç çeşitli sembolü temsil eder. Toplam 95 adet yazdırılabilir karakter vardır.

Kod 20hex, "boşluk" karakteri, bir klavyenin boşluk çubuğu tarafından üretildiği gibi kelimeler arasındaki boşluğu belirtir. Boşluk karakteri görünmez bir grafik olarak kabul edildiğinden (bir kontrol karakteri yerine) önceki bölüm yerine aşağıdaki tabloda listelenmiştir.

Kod 7Fhex yazdırılamayan "delete" (DEL) kontrol karakterine karşılık gelir ve bu nedenle bu tabloda yer almaz; önceki bölümün tablosunda ele alınmıştır. ASCII'nin önceki sürümlerinde imleç yerine yukarı ok (5Ehex) ve alt çizgi yerine sol ok (5Fhex) kullanılırdı.

İkili Ekim Aralık Altıgen Glif
1963 1965 1967
010 0000 040 32 20  uzay
010 0001 041 33 21 !
010 0010 042 34 22 "
010 0011 043 35 23 #
010 0100 044 36 24 $
010 0101 045 37 25 %
010 0110 046 38 26 &
010 0111 047 39 27 '
010 1000 050 40 28 (
010 1001 051 41 29 )
010 1010 052 42 2A *
010 1011 053 43 2B +
010 1100 054 44 2C ,
010 1101 055 45 2D -
010 1110 056 46 2E .
010 1111 057 47 2F /
011 0000 060 48 30 0
011 0001 061 49 31 1
011 0010 062 50 32 2
011 0011 063 51 33 3
011 0100 064 52 34 4
011 0101 065 53 35 5
011 0110 066 54 36 6
011 0111 067 55 37 7
011 1000 070 56 38 8
011 1001 071 57 39 9
011 1010 072 58 3A :
011 1011 073 59 3B ;
011 1100 074 60 3C <
011 1101 075 61 3D =
011 1110 076 62 3E >
011 1111 077 63 3F ?
100 0000 100 64 40 @ ` @
100 0001 101 65 41 A
100 0010 102 66 42 B
100 0011 103 67 43 C
100 0100 104 68 44 D
100 0101 105 69 45 E
100 0110 106 70 46 F
100 0111 107 71 47 G
100 1000 110 72 48 H
100 1001 111 73 49 I
100 1010 112 74 4A J
100 1011 113 75 4B K
100 1100 114 76 4C L
100 1101 115 77 4D M
100 1110 116 78 4E N
100 1111 117 79 4F O
101 0000 120 80 50 P
101 0001 121 81 51 Q
101 0010 122 82 52 R
101 0011 123 83 53 S
101 0100 124 84 54 T
101 0101 125 85 55 U
101 0110 126 86 56 V
101 0111 127 87 57 W
101 1000 130 88 58 X
101 1001 131 89 59 Y
101 1010 132 90 5A Z
101 1011 133 91 5B [
101 1100 134 92 5C \ ~ \
101 1101 135 93 5D ]
101 1110 136 94 5E ^
101 1111 137 95 5F _
110 0000 140 96 60 @ `
110 0001 141 97 61 a
110 0010 142 98 62 b
110 0011 143 99 63 c
110 0100 144 100 64 d
110 0101 145 101 65 e
110 0110 146 102 66 f
110 0111 147 103 67 g
110 1000 150 104 68 h
110 1001 151 105 69 i
110 1010 152 106 6A j
110 1011 153 107 6B k
110 1100 154 108 6C l
110 1101 155 109 6D m
110 1110 156 110 6E n
110 1111 157 111 6F o
111 0000 160 112 70 p
111 0001 161 113 71 q
111 0010 162 114 72 r
111 0011 163 115 73 s
111 0100 164 116 74 t
111 0101 165 117 75 u
111 0110 166 118 76 v
111 0111 167 119 77 w
111 1000 170 120 78 x
111 1001 171 121 79 y
111 1010 172 122 7A z
111 1011 173 123 7B {
111 1100 174 124 7C ACK ¬
111 1101 175 125 7D }
111 1110 176 126 7E ESC ~

Karakter seti

ASCII (1977/1986)
0 1 2 3 4 5 6 7 8 9 A B C D E F
0x NUL SOH STX ETX EOT ENQ ACK BEL  BS   HT   LF   VT   FF   CR   SO   SI 
1x DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN  EM  SUB ESC  FS   GS   RS   ABD 
2x  SP   ! " # $  % & ' ( ) * + , - . /
3x 0 1 2 3 4 5 6 7 8 9  :  ; < = >  ?
4x @ A B C D E F G H I J K L M N O
5x P Q R S T U V W X Y Z [ \ ] ^ _
6x ` a b c d e f g h i j k l m n o
7x p q r s t u v w x y z { | } ~ DEL
  1963 versiyonunda değiştirildi veya eklendi
  Hem 1963 versiyonunda hem de 1965 taslağında değiştirildi

Kullanım

ASCII ticari olarak ilk kez 1963 yılında American Telephone & Telegraph'ın TWX (TeletypeWriter eXchange) ağı için yedi bitlik bir teleprinter kodu olarak kullanıldı. TWX başlangıçta, rakip Telex teleprinter sistemi tarafından da kullanılan daha önceki beş bitlik ITA2'yi kullanıyordu. Bob Bemer kaçış dizisi gibi özellikleri tanıttı. İngiliz meslektaşı Hugh McGregor Ross bu çalışmanın popülerleşmesine yardımcı oldu - Bemer'e göre "o kadar ki ASCII olacak kod ilk olarak Avrupa'da Bemer-Ross Kodu olarak adlandırıldı". ASCII üzerindeki kapsamlı çalışmaları nedeniyle Bemer "ASCII'nin babası" olarak anılmaktadır.

11 Mart 1968'de ABD Başkanı Lyndon B. Johnson, Birleşik Devletler Federal Hükümeti tarafından satın alınan tüm bilgisayarların ASCII'yi desteklemesini zorunlu kıldı ve şöyle dedi:

Ticaret Bakanı'nın [Luther H. Hodges], bilgisayar işlemlerinde kullanıldıklarında manyetik bantlara ve kağıt bantlara Bilgi Değişimi için Standart Kodun kaydedilmesine ilişkin standartlarla ilgili önerilerini de onayladım. Federal Hükümet envanterine 1 Temmuz 1969 ve sonrasında giren tüm bilgisayarlar ve ilgili ekipman konfigürasyonları, Bilgi Değişimi için Standart Kodu ve bu ortamlar kullanıldığında manyetik bant ve kağıt bant standartları tarafından öngörülen formatları kullanma kapasitesine sahip olmalıdır.

ASCII, UTF-8 kodlamasının onu geçtiği Aralık 2007'ye kadar World Wide Web'deki en yaygın karakter kodlamasıydı; UTF-8, ASCII ile geriye dönük olarak uyumludur.

Varyantlar ve türevler

Bilgisayar teknolojisi dünya çapında yayıldıkça, farklı standart kuruluşları ve şirketler, Roma temelli alfabeler kullanan İngilizce dışındaki dillerin ifadesini kolaylaştırmak için ASCII'nin birçok varyasyonunu geliştirdi. Bu varyasyonlardan bazıları "ASCII uzantıları" olarak sınıflandırılabilir, ancak bazıları bu terimi ASCII'nin 7 bit aralığındaki karakter haritasını korumayanlar da dahil olmak üzere tüm varyantları temsil etmek için yanlış kullanmaktadır. Ayrıca, ASCII uzantıları da ASCII olarak yanlış etiketlenmiştir.

7 bitlik kodlar

ASCII, geliştirildiği ilk dönemlerden itibaren uluslararası bir karakter kodu standardının çeşitli ulusal varyantlarından sadece biri olarak düşünülmüştür.

Diğer uluslararası standart kuruluşları, ISO 646 (1967) gibi ASCII ile aynı veya neredeyse aynı olan karakter kodlamalarını, İngiliz alfabesi dışındaki karakterler ve Birleşik Krallık'ın sterlin (£) sembolü gibi Amerika Birleşik Devletleri dışında kullanılan semboller için uzantılarla onayladı; örneğin kod sayfası 1104 ile. ASCII sadece ABD ve diğer birkaç ülkenin ihtiyaçlarını karşıladığı için neredeyse her ülke ASCII'nin uyarlanmış bir versiyonuna ihtiyaç duyuyordu. Örneğin, Kanada'nın Fransızca karakterleri destekleyen kendi versiyonu vardı.

Diğer birçok ülke, İngilizce olmayan harfleri (örneğin é, ñ, ß, Ł), para birimi sembollerini (örneğin £, ¥) vb. içermek için ASCII'nin varyantlarını geliştirdi. Ayrıca bakınız YUSCII (Yugoslavya).

Çoğu karakteri ortak olarak paylaşacak, ancak yerel olarak kullanışlı diğer karakterleri "ulusal kullanım" için ayrılmış birkaç kod noktasına atayacaktı. Ancak, ASCII-1963'ün yayınlanması ile ISO'nun 1967'de uluslararası bir tavsiyeyi ilk kez kabul etmesi arasında geçen dört yıl, ASCII'nin ulusal kullanım karakterleri için yaptığı seçimlerin dünya için fiili standartlar gibi görünmesine neden olmuş ve diğer ülkeler bu kod noktalarına kendi atamalarını yapmaya başladığında karışıklığa ve uyumsuzluğa neden olmuştur.

ISO/IEC 646, ASCII gibi 7 bitlik bir karakter setidir. Herhangi bir ek kodu kullanıma sunmaz, bu nedenle aynı kod noktaları farklı ülkelerde farklı karakterleri kodlar. Bir metin parçasına hangi ulusal varyantın uygulandığını belirtmek için kaçış kodları tanımlanmıştır, ancak bunlar nadiren kullanılmıştır, bu nedenle hangi varyantla çalışılacağını ve dolayısıyla bir kodun hangi karakteri temsil ettiğini bilmek genellikle imkansızdı ve genel olarak metin işleme sistemleri zaten yalnızca bir varyantla başa çıkabilirdi.

ASCII'nin köşeli ayraç ve ayraç karakterleri, ISO/IEC 646'nın diğer ulusal varyantlarında aksanlı harfler için kullanılan "ulusal kullanım" kod noktalarına atandığından, ASCII yerine ISO/IEC 646'nın ulusal varyantını kullanan bir Alman, Fransız veya İsveçli vb. programcı, aşağıdaki gibi bir şey yazmak ve dolayısıyla okumak zorundaydı

ä aÄiÜ = 'Ön'; ü

yerine

{ a[i] = '\n'; }

C trigrafları ANSI C için bu sorunu çözmek üzere oluşturuldu, ancak geç tanıtılmaları ve derleyicilerdeki tutarsız uygulamaları kullanımlarını sınırladı. Birçok programcı bilgisayarlarını US-ASCII'de tutuyordu, bu nedenle İsveççe, Almanca vb. düz metin (örneğin, e-posta veya Usenet'te) kelimelerin ortasında "{, }" ve benzeri varyantlar içeriyordu, bu programcıların alıştığı bir şeydi. Örneğin, İsveçli bir programcı başka bir programcıya öğle yemeğine gidip gitmeyeceklerini soran bir e-posta gönderdiğinde, cevap olarak "N{ jag har sm|rg}sar" alabilir, ki bu "Nä jag har smörgåsar" yani "Hayır sandviçim var" olmalıdır.

Japonya ve Kore'de, 2020'lerden itibaren hala, ters eğik çizginin (5C hex) ¥ (Japonya'da Yen işareti) veya ₩ (Kore'de Won işareti) olarak gösterildiği bir ASCII varyasyonu kullanılmaktadır. Bu, örneğin C:\Users\Smith dosya yolunun C:¥Users¥Smith (Japonya'da) veya C:₩Users₩Smith (Kore'de) olarak gösterildiği anlamına gelir.

8 bit kodlar

Sonunda, 8, 16 ve 32 bitlik (ve daha sonra 64 bitlik) bilgisayarlar norm olarak 12, 18 ve 36 bitlik bilgisayarların yerini almaya başladığında, her karakteri bellekte saklamak için 8 bitlik bir bayt kullanmak yaygın hale geldi ve ASCII'nin genişletilmiş, 8 bitlik akrabaları için bir fırsat sağladı. Çoğu durumda bunlar ASCII'nin gerçek uzantıları olarak geliştirildi, orijinal karakter eşlemesi bozulmadan bırakıldı, ancak ilk 128 (yani 7 bit) karakterden sonra ek karakter tanımları eklendi.

Kodlamalar ISCII (Hindistan), VISCII (Vietnam) içerir. Bu kodlamalar bazen ASCII olarak adlandırılsa da, gerçek ASCII yalnızca ANSI standardı tarafından kesin olarak tanımlanır.

İlk ev bilgisayar sistemlerinin çoğu, çizgi çizme ve oyun glifleri içeren kendi 8 bitlik karakter setlerini geliştirmiş ve genellikle 0'dan 31'e kadar olan kontrol karakterlerinin bir kısmını veya tamamını daha fazla grafikle doldurmuştur. Kaypro CP/M bilgisayarları Yunan alfabesi için "üst" 128 karakteri kullanmıştır.

Commodore International'ın 8-bit sistemleri için kullandığı PETSCII kodu, ZX Spectrum bilgisayarında olduğu gibi daha yaygın olan ASCII-1967 yerine ASCII-1963'e dayandığı için 1970 sonrası kodlar arasında muhtemelen benzersizdir. Atari 8-bit bilgisayarları ve Galaksija bilgisayarları da ASCII varyantlarını kullanmıştır.

IBM PC, kontrol karakterlerini gülen yüzler gibi grafik sembollerle değiştiren ve üst 128 konuma ek grafik karakterleri eşleyen 437 kod sayfasını tanımladı. DOS gibi işletim sistemleri bu kod sayfalarını destekledi ve IBM PC üreticileri bunları donanım olarak destekledi. Digital Equipment Corporation, blok grafiklerden ziyade uluslararası diller için tasarlanmış ilk uzantılardan biri olarak popüler VT220 terminalinde kullanılmak üzere Çok Uluslu Karakter Setini (DEC-MCS) geliştirdi. Macintosh, Mac OS Roman'ı tanımladı ve Postscript de bir set tanımladı, bunların her ikisi de modern karakter setlerine daha çok benzeyen grafikler yerine hem uluslararası harfler hem de tipografik noktalama işaretleri içeriyordu.

ISO/IEC 8859 standardı (DEC-MCS'den türetilmiştir) nihayet çoğu sistemin kopyaladığı bir standart sağlamıştır (en azından ASCII'yi kopyaladıkları kadar doğru bir şekilde, ancak birçok ikame ile). Microsoft tarafından tasarlanan popüler bir eklenti olan Windows-1252 (genellikle ISO-8859-1 olarak yanlış etiketlenir), geleneksel metin yazdırma için gereken tipografik noktalama işaretlerini ekledi. ISO-8859-1, Windows-1252 ve orijinal 7-bit ASCII, UTF-8'in daha yaygın hale geldiği 2008 yılına kadar en yaygın karakter kodlamalarıydı.

ISO/IEC 4873, 7 bit ASCII kodlamasını 8 bitlik bir sistem haline getirmenin bir parçası olarak 80-9F onaltılık aralığında tanımlanan 32 ek kontrol kodu getirmiştir.

Unicode

Unicode ve ISO/IEC 10646 Evrensel Karakter Seti (UCS) çok daha geniş bir karakter dizisine sahiptir ve bunların çeşitli kodlama biçimleri birçok ortamda hızla ISO/IEC 8859 ve ASCII'nin yerini almaya başlamıştır. ASCII 128 karakterle sınırlıyken, Unicode ve UCS benzersiz tanımlama (kod noktaları adı verilen doğal sayılar kullanarak) ve kodlama (sırasıyla UTF-8, UTF-16 ve UTF-32 olarak adlandırılan 8, 16 veya 32 bit ikili biçimlere) kavramlarını ayırarak daha fazla karakteri destekler.

ASCII, Unicode (1991) karakter setine ilk 128 sembol olarak dahil edilmiştir, bu nedenle 7 bit ASCII karakterleri her iki sette de aynı sayısal kodlara sahiptir. Bu, UTF-8'in 7-bit ASCII ile geriye dönük uyumlu olmasını sağlar, çünkü yalnızca ASCII karakterleri içeren bir UTF-8 dosyası aynı karakter dizisini içeren bir ASCII dosyasıyla aynıdır. Daha da önemlisi, sadece 7-bit ASCII karakterlerini özel olarak tanıyan ve en yüksek bit setine sahip baytları değiştirmeyen yazılımlar (ISO-8859-1 gibi 8-bit ASCII uzantılarını desteklemek için sıklıkla yapıldığı gibi) UTF-8 verilerini değiştirmeden koruyacağından ileriye dönük uyumluluk sağlanır.

ASCII yazdırma karakterleri

32-126 arası sayılar klavyenizde bulabileceğiniz ve bir belgeyi görüntülediğinizde veya yazdırdığınızda görünen karakterlere atanmıştır. 127 SİL komutunu gösterir.

ASCII tablosu

Dec Hex Oct Bin Karakter Anlam
0 0x0 00 00000000 NUL Boş Karakter
1 0x1 01 00000001 SOH Başlık girişi
2 0x2 02 00000010 STX Tx başlangıcı
3 0x3 03 00000011 ETX Tx bitişi
4 0x4 04 00000100 EOT
5 0x5 05 00000101 ENQ
6 0x6 06 00000110 ACK
7 0x7 07 00000111 BEL Çan
8 0x8 010 00001000 BS Geri adım
9 0x9 011 00001001 HT Yatay sekme
10 0xA 012 00001010 LF Yeni satır
11 0xB 013 00001011 VT
12 0xC 014 00001100 FF
13 0xD 015 00001101 CR
14 0xE 016 00001110 SO
15 0xF 017 00001111 SI
16 0x10 020 00010000 DLE
17 0x11 021 00010001 DC1
18 0x12 022 00010010 DC2
19 0x13 023 00010011 DC3
20 0x14 024 00010100 DC4
21 0x15 025 00010101 NAK
22 0x16 026 00010110 SYN
23 0x17 027 00010111 ETB
24 0x18 030 00011000 CAN
25 0x19 031 00011001 EM
26 0x1A 032 00011010 SUB
27 0x1B 033 00011011 ESC
28 0x1C 034 00011100 FS
29 0x1D 035 00011101 GS
30 0x1E 036 00011110 RS
31 0x1F 037 00011111 US
32 0x20 040 00100000 SPC
33 0x21 041 00100001 !
34 0x22 042 00100010 "
35 0x23 043 00100011 #
36 0x24 044 00100100 $
37 0x25 045 00100101 %
38 0x26 046 00100110 &
39 0x27 047 00100111 '
40 0x28 050 00101000 (
41 0x29 051 00101001 )
42 0x2A 052 00101010 *
43 0x2B 053 00101011 +
44 0x2C 054 00101100 ,
45 0x2D 055 00101101 -
46 0x2E 056 00101110 .
47 0x2F 057 00101111 /
48 0x30 060 00110000 0
49 0x31 061 00110001 1
50 0x32 062 00110010 2
51 0x33 063 00110011 3
52 0x34 064 00110100 4
53 0x35 065 00110101 5
54 0x36 066 00110110 6
55 0x37 067 00110111 7
56 0x38 070 00111000 8
57 0x39 071 00111001 9
58 0x3A 072 00111010 :
59 0x3B 073 00111011 ;
60 0x3C 074 00111100 <
61 0x3D 075 00111101 =
62 0x3E 076 00111110 >
63 0x3F 077 00111111 ?
64 0x40 0100 01000000 @
65 0x41 0101 01000001 A
66 0x42 0102 01000010 B
67 0x43 0103 01000011 C
68 0x44 0104 01000100 D
69 0x45 0105 01000101 E
70 0x46 0106 01000110 F
71 0x47 0107 01000111 G
72 0x48 0110 01001000 H
73 0x49 0111 01001001 I
74 0x4A 0112 01001010 J
75 0x4B 0113 01001011 K
76 0x4C 0114 01001100 L
77 0x4D 0115 01001101 M
78 0x4E 0116 01001110 N
79 0x4F 0117 01001111 O
80 0x50 0120 01010000 P
81 0x51 0121 01010001 Q
82 0x52 0122 01010010 R
83 0x53 0123 01010011 S
84 0x54 0124 01010100 T
85 0x55 0125 01010101 U
86 0x56 0126 01010110 V
87 0x57 0127 01010111 W
88 0x58 0130 01011000 X
89 0x59 0131 01011001 Y
90 0x5A 0132 01011010 Z
91 0x5B 0133 01011011 [
92 0x5C 0134 01011100 \
93 0x5D 0135 01011101 ]
94 0x5E 0136 01011110 ^
95 0x5F 0137 01011111 _
96 0x60 0140 01100000 `
97 0x61 0141 01100001 a
98 0x62 0142 01100010 b
99 0x63 0143 01100011 c
100 0x64 0144 01100100 d
101 0x65 0145 01100101 e
102 0x66 0146 01100110 f
103 0x67 0147 01100111 g
104 0x68 0150 01101000 h
105 0x69 0151 01101001 i
106 0x6A 0152 01101010 j
107 0x6B 0153 01101011 k
108 0x6C 0154 01101100 l
109 0x6D 0155 01101101 m
110 0x6E 0156 01101110 n
111 0x6F 0157 01101111 o
112 0x70 0160 01110000 p
113 0x71 0161 01110001 q
114 0x72 0162 01110010 r
115 0x73 0163 01110011 s
116 0x74 0164 01110100 t
117 0x75 0165 01110101 u
118 0x76 0166 01110110 v
119 0x77 0167 01110111 w
120 0x78 0170 01111000 x
121 0x79 0171 01111001 y
122 0x7A 0172 01111010 z
123 0x7B 0173 01111011 {
124 0x7C 0174 01111100 |
125 0x7D 0175 01111101 }
126 0x7E 0176 01111110 ~
127 0x7F 0177 01111111 Del
128 0x80 0200 10000000 M-^@
129 0x81 0201 10000001 M-^A
130 0x82 0202 10000010 M-^B
131 0x83 0203 10000011 M-^C
132 0x84 0204 10000100 M-^D
133 0x85 0205 10000101 M-^E
134 0x86 0206 10000110 M-^F
135 0x87 0207 10000111 M-^G
136 0x88 0210 10001000 M-^H
137 0x89 0211 10001001 M-^I
138 0x8A 0212 10001010 M-^J
139 0x8B 0213 10001011 M-^K
140 0x8C 0214 10001100 M-^L
141 0x8D 0215 10001101 M-^M
142 0x8E 0216 10001110 M-^N
143 0x8F 0217 10001111 M-^O
144 0x90 0220 10010000 M-^P
145 0x91 0221 10010001 M-^Q
146 0x92 0222 10010010 M-^R
147 0x93 0223 10010011 M-^S
148 0x94 0224 10010100 M-^T
149 0x95 0225 10010101 M-^U
150 0x96 0226 10010110 M-^V
151 0x97 0227 10010111 M-^W
152 0x98 0230 10011000 M-^X
153 0x99 0231 10011001 M-^Y
154 0x9A 0232 10011010 M-^Z
155 0x9B 0233 10011011 M-^[
156 0x9C 0234 10011100 M-^\
157 0x9D 0235 10011101 M-^]
158 0x9E 0236 10011110 M-^^
159 0x9F 0237 10011111 M-^_
160 0xA0 0240 10100000 M-
161 0xA1 0241 10100001 M-!
162 0xA2 0242 10100010 M-"
163 0xA3 0243 10100011 M-#
164 0xA4 0244 10100100 M-$
165 0xA5 0245 10100101 M-%
166 0xA6 0246 10100110 M-&
167 0xA7 0247 10100111 M-'
168 0xA8 0250 10101000 M-(
169 0xA9 0251 10101001 M-)
170 0xAA 0252 10101010 M-*
171 0xAB 0253 10101011 M-+
172 0xAC 0254 10101100 M-,
173 0xAD 0255 10101101 M--
174 0xAE 0256 10101110 M-.
175 0xAF 0257 10101111 M-/
176 0xB0 0260 10110000 M-0
177 0xB1 0261 10110001 M-1
178 0xB2 0262 10110010 M-2
179 0xB3 0263 10110011 M-3
180 0xB4 0264 10110100 M-4
181 0xB5 0265 10110101 M-5
182 0xB6 0266 10110110 M-6
183 0xB7 0267 10110111 M-7
184 0xB8 0270 10111000 M-8
185 0xB9 0271 10111001 M-9
186 0xBA 0272 10111010 M-:
187 0xBB 0273 10111011 M-;
188 0xBC 0274 10111100 M-<
189 0xBD 0275 10111101 M-=
190 0xBE 0276 10111110 M->
191 0xBF 0277 10111111 M-?
192 0xC0 0300 11000000 M-@
193 0xC1 0301 11000001 M-A
194 0xC2 0302 11000010 M-B
195 0xC3 0303 11000011 M-C
196 0xC4 0304 11000100 M-D
197 0xC5 0305 11000101 M-E
198 0xC6 0306 11000110 M-F
199 0xC7 0307 11000111 M-G
200 0xC8 0310 11001000 M-H
201 0xC9 0311 11001001 M-I
202 0xCA 0312 11001010 M-J
203 0xCB 0313 11001011 M-K
204 0xCC 0314 11001100 M-L
205 0xCD 0315 11001101 M-M
206 0xCE 0316 11001110 M-N
207 0xCF 0317 11001111 M-O
208 0xD0 0320 11010000 M-P
209 0xD1 0321 11010001 M-Q
210 0xD2 0322 11010010 M-R
211 0xD3 0323 11010011 M-S
212 0xD4 0324 11010100 M-T
213 0xD5 0325 11010101 M-U
214 0xD6 0326 11010110 M-V
215 0xD7 0327 11010111 M-W
216 0xD8 0330 11011000 M-X
217 0xD9 0331 11011001 M-Y
218 0xDA 0332 11011010 M-Z
219 0xDB 0333 11011011 M-[
220 0xDC 0334 11011100 M-\
221 0xDD 0335 11011101 M-]
222 0xDE 0336 11011110 M-^
223 0xDF 0337 11011111 M-_
224 0xE0 0340 11100000 M-`
225 0xE1 0341 11100001 M-a
226 0xE2 0342 11100010 M-b
227 0xE3 0343 11100011 M-c
228 0xE4 0344 11100100 M-d
229 0xE5 0345 11100101 M-e
230 0xE6 0346 11100110 M-f
231 0xE7 0347 11100111 M-g
232 0xE8 0350 11101000 M-h
233 0xE9 0351 11101001 M-i
234 0xEA 0352 11101010 M-j
235 0xEB 0353 11101011 M-k
236 0xEC 0354 11101100 M-l
237 0xED 0355 11101101 M-m
238 0xEE 0356 11101110 M-n
239 0xEF 0357 11101111 M-o
240 0xF0 0360 11110000 M-p
241 0xF1 0361 11110001 M-q
242 0xF2 0362 11110010 M-r
243 0xF3 0363 11110011 M-s
244 0xF4 0364 11110100 M-t
245 0xF5 0365 11110101 M-u
246 0xF6 0366 11110110 M-v
247 0xF7 0367 11110111 M-w
248 0xF8 0370 11111000 M-x
249 0xF9 0371 11111001 M-y
250 0xFA 0372 11111010 M-z
251 0xFB 0373 11111011 M-{
252 0xFC 0374 11111100 M-|
253 0xFD 0375 11111101 M-}
254 0xFE 0376 11111110 M-~
255 0xFF 0377 11111111 M-^?

Genişletilmiş ASCII yazdırma karakterleri

Genişletilmiş ASCII karakterler ek karakter talebini karşılar. Genişletilmiş ASCII'de (aşağıdaki grafikte görüntülenen 0-32 arası sayılar) yer alan 128 karaktere ek olarak 128 karakter daha bulunur, böylece toplam karakter sayısı 256'ya ulaşır. Bu ek karakterlerle bile, birçok dilde 256 karaktere katılamayan simgeler vardır. Bu nedenle, bölgesel karakter ve simgeleri karşılamak için ASCII çeşitlemeleri vardır.

Örneğin, Kuzey Amerika, Batı Avrupa, Avustralya ve Afrika dillerine ait yazılım programlarında ISO 8859-1 olarak da bilinen ASCII tablosu kullanılır.

Genişletilmiş ASCII yazdırma karakterleri tablosu
Ondalık Karakter     Ondalık 	Karakter
128 	Ç 		192 	└
129 	ü 		193 	┴
130 	é 		194 	┬
131 	â 		195 	├
132 	ä 		196 	─
133 	à 		197 	┼
134 	å 		198 	╞
135 	ç 		199 	╟
136 	ê 		200 	╚
137 	ë 		201 	╔
138 	è 		202 	╩
139 	ï 		203 	╦
140 	î 		204 	╠
141 	ì 		205 	═
142 	Ä 		206 	╬
143 	Å 		207 	╧
144 	É 		208 	╨
145 	æ 		209 	╤
146 	Æ 		210 	╥
147 	ô 		211 	╙
148 	ö 		212 	Ô
149 	ò 		213 	╒
150 	û 		214 	╓
151 	ù 		215 	╫
152 	ÿ 		216 	╪
153 	Ö 		217 	┘
154 	Ü 		218 	┌
155 	¢ 		219 	█
156 	£ 		220 	▄
157 	¥ 		221 	▌
158 	₧ 		222 	▐
159 	ƒ 		223 	▀
160 	á 		224 	α
161 	í 		225 	ß
162 	ó 		226 	Γ
163 	ú 		227 	π
164 	ñ 		228 	Σ
165 	Ñ 		229 	σ
166 	ª 		230 	µ
167 	º 		231 	τ
168 	¿ 		232 	Φ
169 	⌐ 		233 	Θ
170 	¬ 		234 	Ω
171 	½ 		235 	δ
172 	¼ 		236 	∞
173 	¡ 		237 	φ
174 	« 		     238     ε
175 	» 		239 	∩
176 	░ 		240 	≡
177 	▒ 		241 	±
178 	▓ 		242 	≥
179 	│ 		243 	≤
180 	┤ 		244 	⌠
181 	╡ 		245 	⌡
182 	╢ 		246 	÷
183 	╖ 		247 	≈
184 	╕ 		248 	≈
185 	╣ 		249 	∙
186 	║ 		250 	·
187 	╗ 		251 	√
188 	╝ 		252 	ⁿ
189 	╜ 		253 	²
190 	╛ 		254 	■
191 	┐ 		255