Genişletilmiş ASCII - Extended ASCII

Program Çıktı ascii içinde Cygwin

Genişletilmiş ASCII ( EASCII veya yüksek ASCII ) karakter kodlamaları olan sekiz bitlik standart yedi içeren veya daha büyük kodlamalar bit ASCII karakterleri, artı ek karakterler. "Genişletilmiş ASCII" teriminin tek başına kullanılması bazen eleştirilir, çünkü bu, yanlışlıkla ASCII standardının 128'den fazla karakter içerecek şekilde güncellendiği veya terimin açık bir şekilde tek bir kodlamayı tanımladığı ve bunların hiçbiri olmayan tek bir kodlamayı tanımladığı şeklinde yorumlanabilir. durum.

Birçok genişletilmiş ASCII kodlaması vardır (220'den fazla DOS ve Windows kod sayfası). EBCDIC ("diğer" ana 8 bitlik karakter kodu) benzer şekilde, on yıllar boyunca birçok genişletilmiş varyant (186'dan fazla EBCDIC kod sayfası) geliştirdi.

Tarih

ASCII, 1960'larda tele yazıcılar , telgraf ve bazı bilgi işlem için tasarlandı . İlk teleyazıcılar elektromekanikti, mikroişlemcileri yoktu ve işlev görecek kadar elektromekanik hafızası vardı. Her seferinde bir karakteri tamamen işliyorlar ve hemen ardından boş bir duruma dönüyorlar; bu, herhangi bir kontrol dizisinin yalnızca bir karakter uzunluğunda olması gerektiği ve bu nedenle bu tür kontroller için çok sayıda kodun ayrılması gerektiği anlamına geliyordu. Daktilodan türetilen darbeli yazıcılardı ve yalnızca metal tipi bir öğeye veya öğelere dökülen sabit bir dizi glif basabiliyorlardı; bu aynı zamanda minimum bir glif kümesini de teşvik etti.

Yedi bitlik ASCII, önceki beş ve altı bit kodlara göre geliştirildi. 2 7 = 128 koddan 33'ü kontroller için kullanıldı ve İngiliz alfabesini (büyük ve küçük harf), rakamları ve 31 noktalama işaretini ve sembolünü içeren özenle seçilmiş 95 yazdırılabilir karakter (94 glif ve bir boşluk) standart bir ABD daktilodaki semboller ve programlama görevleri için seçilen birkaç sembol. Bazı popüler çevre birimleri yalnızca 64-baskı karakterli bir alt küme uygulamıştır: Teletype Model 33 , "a" ile "z" arasında veya daha az yaygın olan beş sembolü ("`", "{", "|", "}" ve "~"). ve bu tür karakterleri aldıklarında bunun yerine "A" ile "Z" arasında ( tüm büyük harfleri zorunlu ) ve diğer beş benzer sembolü ("@", "[", "\", "]" ve "^") yazdırdılar. .

ASCII karakter kümesi zorlukla ABD İngilizce kullanım için yeterince büyük olduğu ve birçok glifleri Common yoksun dizgi ve evrensel kullanım için çok küçük. İngilizce dışındaki alfabelerin harflerini doğrudan temsil etmek için daha birçok harf ve sembol arzu edilir, faydalıdır veya gereklidir, daha fazla noktalama ve boşluk türü, daha fazla matematiksel operatör ve sembol (× ÷ ⋅ ≠ ≥ ≈ π vb.), kullanılan bazı benzersiz semboller bazı programlama dilleri, ideogramlar , logogramlar , kutu çizim karakterleri vb. tarafından. Yıllar boyunca, uygulamalar 64 karakterlik set ve/veya 95 karakterlik set etrafında tasarlandı, böylece birçok karakter yeni kullanımlar kazandı. Örneğin, ASCII'de "÷" yoktur, bu nedenle çoğu programlama dili bölmeyi belirtmek için "/" kullanır.

Dünyadaki bilgisayar kullanıcıları için en büyük sorun diğer alfabelerdi. ASCII'nin İngiliz alfabesi, aksanlı harflerin yerine aksansız harfler veya iki karakterli yaklaşımlar alındığında neredeyse Avrupa dillerini barındırır. 7-bit ASCII'nin değiştirilmiş varyantları hemen ortaya çıktı ve daha az kullanılan bazı sembolleri çok istenen semboller veya harflerle değiştirdi, örneğin UK Teletypes'ta "#" yerine "£", Japonya'da "\"yi "¥" veya "₩" ile değiştirmek gibi. Kore'de vb. En az 29 varyant seti sonuçlandı. 12 kod noktası, en az bir değiştirilmiş küme tarafından değiştirilmiş ve yalnızca 82 "değişmez" kod bırakılmıştır . Ancak programlama dilleri, değiştirilen karakterlerin çoğuna anlam atamıştı, "{" ve "}" yi temsil etmek için C üç karakterli diziler "??(" ve "??)" gibi geçici çözümler geliştirildi . Birbirine benzemeyen temel alfabelere sahip diller, tüm Latin harflerini en yakın eşleşen Kiril harfleriyle değiştirmek gibi harf çevirisi kullanabilir (İngilizce Kiril dilinde yazdırıldığında tuhaf ama biraz okunabilir metinle sonuçlanır veya tam tersi). Düzenler ayrıca, aksanlı harfler üretmek için iki harfin üst üste yazdırılabilmesi (genellikle aralarında geri alma kontrolü ile) olarak tasarlandı. Kullanıcılar bu ödünlerin hiçbirinden memnun değillerdi ve genellikle yetersiz destekleniyorlardı.

1970'lerde bilgisayarlar ve çevre birimleri sekiz bit bayt üzerinde standart hale getirildiğinde, bilgisayarların ve yazılımların 256 karakterlik kümeleri kullanan metinleri programlamada neredeyse hiçbir ek maliyet ve depolama için ek maliyet olmadan işleyebileceği açık hale geldi. (Her baytın kullanılmayan 8. bitinin, hata denetimi, Boole alanları veya 8 karakteri 7 bayta paketleme gibi bir şekilde yeniden kullanılmadığını varsayarsak.) Bu, ASCII'nin değişmeden kullanılmasına ve 128 karakter daha sağlamasına olanak tanır. Birçok üretici, ASCII artı 128'e kadar kullanılmayan koddan oluşan 8 bitlik karakter setleri tasarladı. Doğu Avrupa o zamanlar politik olarak ayrıldığından, Danimarka, Hollanda, Fransızca, Almanca, Portekizce, İspanyolca, İsveççe ve daha fazlası gibi daha çok kullanılan tüm Avrupa (ve Latin Amerika) dillerini kapsayan 8 bitlik kodlamalar genellikle yapılabilirdi. "Latin" veya "Roma" olarak adlandırılır.

128 ek karakter, tüm amaçları, tüm dilleri ve hatta tüm Avrupa dillerini kapsamak için hala yeterli değildir, bu nedenle birçok tescilli ve ulusal ASCII'den türetilmiş 8 bitlik karakter setlerinin ortaya çıkması kaçınılmazdı. Bu kümeler arasında çeviri yapmak ( kod çevrimi ) karmaşıktır (özellikle bir karakter her iki kümede de değilse); ve genellikle yapılmadı, mojibake üretildi (yarı okunabilir sonuçtaki metin, genellikle kullanıcılar manuel olarak nasıl çözüleceğini öğrendi). Sonunda 1990'ların sonlarında ulusal ve uluslararası standart kuruluşları tarafından işbirliği veya koordinasyon girişimleri oldu, ancak tescilli setlerin üretimi, esasen standartlar birçok popüler karakteri dışladığı için, açık ara en popüler olanı olarak kaldı.

Tescilli uzantılar

ASCII'nin çeşitli tescilli değişiklikleri ve uzantıları , özellikle üniversitelerde, EBCDIC olmayan ana bilgisayar bilgisayarlarında ve mini bilgisayarlarda ortaya çıktı .

Hewlett-Packard , 1978/1979 yıllarında iş istasyonları, terminalleri ve yazıcıları ile kullanım için genişletilmiş 7-bit / 8-bit ASCII karakter kümesi HP Roman Extension'a Avrupa karakterlerini eklemeye başladı . Bu, daha sonra yaygın olarak kullanılan normal 8 bitlik HP Roman-8 ve HP Roman-9 karakter kümelerine (ve bir dizi varyant) dönüştü .

Atari ve Commodore ev bilgisayarları , standart olmayan ASCII'lerine birçok grafik sembol eklediler (Sırasıyla, ATASCII ve PETSCII , 1963 orijinal ASCII standardına dayanmaktadır).

TRS-80 karakter seti için TRS-80 ev bilgisayarı 64 katma semigraphics düşük çözünürlüklü blok grafikler uygulanan karakterler (0xBF aracılığıyla 0x80). (Her blok grafik karakteri 2x3 piksel ızgarası olarak görüntülenir ve her blok pikseli alt 6 bitten biri tarafından etkin bir şekilde kontrol edilir.)

IBM , orijinal IBM PC'de sekiz bitlik genişletilmiş ASCII kodları tanıttı ve daha sonra farklı diller ve kültürler için varyasyonlar üretti. IBM, bu tür karakter kümelerini kod sayfaları olarak adlandırdı ve hem kendi icat ettikleri hem de diğer üreticiler tarafından icat edilen ve kullanılan birçok kişiye numara atadı. Buna göre, karakter kümeleri sıklıkla IBM kod sayfa numaralarıyla belirtilir. ASCII uyumlu kod sayfalarında, alt 128 karakter standart US-ASCII değerlerini korudu ve üst 128 karakterde farklı sayfalar (veya karakter grupları) kullanılabilir hale getirilebilir. Örneğin, Kuzey Amerika pazarı için oluşturulmuş DOS bilgisayarları, Fransızca, Almanca ve diğer birkaç Avrupa dili için gerekli olan aksanlı karakterlerin yanı sıra bazı grafiksel çizgi çizme karakterlerini içeren kod sayfası 437'yi kullandı . Daha büyük karakter seti, İngilizce ve Fransızca gibi dillerin bir kombinasyonunda belgeler oluşturmayı mümkün kıldı (Fransızca bilgisayarlar genellikle kod sayfası 850 kullanır ), ancak örneğin İngilizce ve Yunanca değil ( kod sayfası 737 gerektirir ).

Apple Computer kendi sekiz bitlik genişletilmiş ASCII kodları tanıtıldı Mac OS gibi, Mac OS Roman . Apple LaserWriter da tanıtıldı Postscript karakter kümesi .

Digital Equipment Corporation (DEC) , daha az karaktere ancak daha fazla harf ve aksan kombinasyonuna sahip Çokuluslu Karakter Setini geliştirdi . VT220 ve sonraki DEC bilgisayar terminalleri tarafından desteklenmiştir . Bu daha sonra Lotus International Character Set (LICS), ECMA-94 ve ISO 8859-1 gibi diğer karakter setlerinin temeli oldu .

ISO 8859 ve tescilli uyarlamalar

Sonunda, ISO bu standardı , kendi sekiz bitlik ASCII uzantılarını tanımlayan ISO 8859 olarak yayınladı . En popüler olanı , en yaygın Batı Avrupa dilleri için yeterli karakterleri içeren ISO Latin 1 olarak da adlandırılan ISO 8859-1'dir . Varyasyonlar diğer diller için de standartlaştırıldı: Örneğin, Doğu Avrupa dilleri için ISO 8859-2 ve Kiril dilleri için ISO 8859-5 .

ISO karakter kümelerinin kod sayfalarından farklı olmasının dikkate değer bir yolu , yüksek sıralı bit kümeli ASCII kontrol karakterlerine karşılık gelen 128 ila 159 karakter konumlarının , sıklıkla kullanılmış olmalarına rağmen, ISO standartlarında özel olarak kullanılmamış ve tanımlanmamış olmasıdır. tescilli kod sayfalarındaki yazdırılabilir karakterler için, neredeyse evrensel olan ISO standartlarının ihlali.

Microsoft daha sonra , ISO kullanılmayan aralığında ekstra karakterlerle uyumlu bir ISO 8859–1 üst kümesi olan kod sayfası 1252'yi oluşturdu . Kod sayfası 1252, İngilizce sürümleri de dahil olmak üzere Microsoft Windows'un batı Avrupa dil sürümlerinin standart karakter kodlamasıdır . ISO 8859-1, X Pencere Sistemi tarafından kullanılan yaygın 8 bitlik karakter kodlamasıdır ve çoğu İnternet standardı bunu Unicode'dan önce kullanırdı .

Karakter seti karışıklığı

Her bir genişletilmiş kod noktasının anlamı, her kodlamada farklı olabilir. Genişletilmiş kodlar içeren metin verilerini (karakter dizileri) doğru şekilde yorumlamak ve görüntülemek için, metni okuyan veya alan donanım ve yazılım, kendisine uygulanan özel genişletilmiş ASCII kodlamasını kullanmalıdır . Yanlış kodlamanın uygulanması, metindeki birçok veya tüm genişletilmiş karakterin mantıksız olarak değiştirilmesine neden olur.

Yazılım, sabit bir kodlama seçimi kullanabilir veya varsayılan olarak, bilgisayarın ülke ve dil ayarlarını kontrol ederek, metindeki bir bildirimi okuyarak, metni analiz ederek , kullanıcıya sorarak, kullanıcının seçmesine veya geçersiz kılmasına izin vererek, bir kodlama paletinden seçim yapabilir , ve/veya son seçime varsayılan olarak. Farklı işletim sistemleri, yazılımlar ve kodlamalar kullanan bilgisayarlar arasında metin aktarıldığında, yanlış kodlamanın uygulanması olağan olabilir.

Tam İngiliz alfabesi ve İngilizce'de en çok kullanılan karakterler, tüm kodlamalarda (hatta en özel kodlamalarda bile) ortak olan ASCII'nin yedi bitlik kod noktalarına dahil edildiğinden, İngilizce metin, yanlış kodlama, ancak diğer dillerdeki metinler mojibake olarak görüntülenebilir (tamamen saçma). Birçok İnternet standardı ISO 8859-1 kullandığından ve Microsoft Windows (ISO 8859-1'in 1252 üst kümesini kullanan) günümüzde kişisel bilgisayarlar için baskın işletim sistemi olduğundan, ISO 8859-1'in habersiz kullanımı oldukça yaygındır ve aksi belirtiler olmadıkça genellikle varsayılır.

Çoğu iletişim protokolü , en önemlisi SMTP ve HTTP , içeriğin karakter kodlamasının IANA tarafından atanan karakter kümesi tanımlayıcıları ile etiketlenmesini gerektirir .

Çok baytlı karakter kodlamaları

Bazı çok baytlı karakter kodlamaları (256'dan fazla farklı karakteri işleyebilen karakter kodlamaları) ayrıca gerçek genişletilmiş ASCII'dir. Bu, tüm ASCII karakterlerinin ASCII ile aynı değerde tek bir bayt ile kodlandığı ve bu değerlerin başka hiçbir yerde kullanılmadığı anlamına gelir. Anahtar sözcükler ve dosya biçimi sözdizimi için yalnızca ASCII baytlarının kullanıldığı dosya biçimlerinde kullanılabilirken, dil anahtar sözcüklerinin, değişken adlarının ve işlev adlarının olması gereken çoğu programlama dili dahil olmak üzere bayt 0x80-0xFF serbest metin için kullanılabilir. ASCII, ancak dize sabitleri ve yorumlar ASCII olmayan karakterler kullanabilir. Bu, genişletilmiş ASCII kullanan mevcut sistemlere çok baytlı bir karakter kümesi eklemeyi çok daha kolaylaştırır.

UTF-8 , bazı Genişletilmiş Unix Kodu kodlamaları gibi gerçek genişletilmiş ASCII'dir .

ISO/IEC 6937 , 0x24 kod noktası dolar işareti ($) yerine genel para birimi işaretine (¤) karşılık geldiğinden, genişletilmiş ASCII değildir , ancak aksi takdirde, vurgu+harf çiftlerinin genişletilmiş bir karakter olduğunu ve ardından gelen ASCII olanı.

Shift JIS , gerçek genişletilmiş ASCII değil. Değiştirilmesi yanında ters eğik çizgi ile yen karakteri, çok baytlık karakterler de ASCII bayt içerebilir. ASCII sınırlayıcılarının ve kontrollerinin kullanılmasından kaçınır, bu nedenle HTML gibi birçok durumda çalışabilir. ASCII karakterleri bir bayt 0x00'a eşit olan iki bayt olarak depolandığından UTF-16 ASCII'den daha az genişletilmiştir. Karakter kümelerini Shift JIS veya UTF-16 olarak desteklemek için mevcut bir sistemi taşımak karmaşıktır ve hataya açıktır.

Bilgisayar tarafından okunabilen dillerde kullanım

Programlama dilleri ve C ve HTML gibi belge dilleri için, Genişletilmiş ASCII ilkesi önemlidir, çünkü bilgisayar tarafından okunabilen dil dosyalarını yorumlayan yazılımda birçok farklı kodlamayı ve dolayısıyla birçok insan dilinin çok az ekstra programlama çabasıyla desteklenmesini sağlar. .

Genişletilmiş ASCII ilkesi şu anlama gelir:

  • tüm ASCII baytları (0x00 - 0x7F) , genişletilmiş ASCII'nin tüm varyantlarında aynı anlama sahiptir ,
  • ASCII baytı olmayan baytlar, yalnızca serbest metin için kullanılır; etiketler, anahtar sözcükler veya yorumlama yazılımı için özel anlamı olan diğer özellikler için kullanılmaz.

Ayrıca bakınız

Referanslar

Dış bağlantılar