ASCII
MIME / IANA | us-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ırma | ISO/IEC 646 serisi |
Uzantılar |
|
Öncesinde | ITA 2, FIELDATA |
Tarafından başarıldı | ISO/IEC 8859, ISO/IEC 10646 (Unicode) |
ASCII (/ˈæskiː/ (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. ⓘ
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
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 ⓘ