ASCII ve Unicode, metnin dijital temsiline, özellikle de metni oluşturan karakterlere atıfta bulunan standartlardır. Bununla birlikte, birçok özellik kendi yaratılış sıralarını yansıtan iki standart önemli ölçüde farklıdır.
Amerika Evrene Karşı
Amerikan Standart Bilgi Değişimi Kodu (ASCII), şaşırtıcı olmayan bir şekilde, İngiliz alfabesiyle yazan bir Amerikan dinleyicisine hitap etmektedir. A-Z ve a-z gibi aksansız harflerin yanı sıra az sayıda noktalama işaretleri ve kontrol karakterleriyle ilgilenir.
Özellikle, başka dillerden benimsenen alıntı sözcükleri temsil etmenin bir yolu yoktur, örneğin: kafe ASCII'de, aksanlı karakterleri (ör., kafe). Yerelleştirilmiş ASCII uzantıları, çeşitli dillerin ihtiyaçlarını karşılamak için geliştirildi, ancak bu çabalar birlikte çalışabilirliği garip hale getirdi ve ASCII'nin yeteneklerini açık bir şekilde genişletiyordu.
Buna karşılık, Evrensel Kodlanmış Karakter Kümesi (Unicode), hırs ölçeğinin diğer ucunda yer alır. Unicode, antik dilleri ve herkesin en sevdiği ifade sembolleri olan emojiyi kapsadığı ölçüde, dünyanın mümkün olduğunca çok yazı sistemine hitap etmeye çalışır.
Karakter Seti mi, Karakter Kodlaması mı?
Basit bir ifadeyle, bir karakter seti bir karakter seçimidir (örneğin, A-Z) ve bir karakter kodlama, bir karakter seti ile dijital olarak temsil edilebilen bir değer arasındaki bir eşlemedir (ör. A = 1, B = 2).
ASCII standardı etkili bir şekilde ikisidir: temsil ettiği karakter kümesini ve her bir karakteri sayısal bir değere eşleme yöntemini tanımlar.
Aksine, Unicode kelimesi farklı anlamlara gelmek için birkaç farklı bağlamda kullanılır. Bir karakter kümesine ve bir dizi kodlamaya atıfta bulunmak için ASCII gibi her şeyi kapsayan bir terim olarak düşünebilirsiniz. Ancak, birkaç kodlama olduğundan, Unicode terimi genellikle nasıl eşleştirildiklerinden ziyade genel karakter kümesine atıfta bulunmak için kullanılır.
Boyut
Kapsamı nedeniyle Unicode, ASCII'den çok daha fazla karakteri temsil eder. Standart ASCII, 128 farklı karakterler. Öte yandan Unicode o kadar büyük ki, sadece bunun hakkında konuşmak için farklı terminoloji kullanmamız gerekiyor!
Unicode adreslenebilir 1.111.998'e hitap eder kod noktaları. Bir kod noktası kabaca bir karakter için ayrılmış bir alana benzer, ancak durum ayrıntılara girmeye başladığınızda olduğundan çok daha karmaşıktır!
Daha kullanışlı bir karşılaştırma şu anda kaç komut dosyasının (veya yazma sisteminin) desteklendiğidir. Elbette, ASCII yalnızca İngilizce alfabesini, esasen Latin veya Latin alfabesini kullanır. 2020'de üretilen Unicode sürümü çok daha ileri gidiyor: Toplam 154 komut dosyası için destek içeriyor.
Depolama
ASCII’nin 7 bitlik aralığı, her karakterin tek bir 8 bitlik baytta depolandığı anlamına gelir; yedek bit, standart ASCII'de kullanılmaz. Bu, boyut hesaplamalarını önemsiz hale getirir: karakter olarak metnin uzunluğu, dosyanın bayt cinsinden boyutudur.
Bunu aşağıdaki bash komutları dizisi ile onaylayabilirsiniz. İlk olarak 12 harfli metin içeren bir dosya oluşturuyoruz:
$ echo -n 'Merhaba dünya'> foo
Metnin ASCII kodlamasında olup olmadığını kontrol etmek için, dosya komut:
$ dosya foo
foo: ASCII metni, satır sonlandırıcı içermeyen
Son olarak, dosyanın kapladığı bayt sayısını tam olarak elde etmek için, stat komut:
$ stat -f% z foo
12
Unicode standardı çok daha geniş bir karakter aralığı ile ilgilendiğinden, bir Unicode dosyası doğal olarak daha fazla depolama alanı kaplar. Tam olarak ne kadarı kodlamaya bağlıdır.
ASCII'de temsil edilemeyen bir karakter kullanarak önceki aynı komut setini tekrarlamak aşağıdakileri verir:
$ echo -n '€'> foo
$ dosya foo
foo: UTF-8 Unicode metni, satır sonlandırıcılar olmadan
$ stat -f% z foo
3
Bu tek karakter bir Unicode dosyasında 3 bayt kaplar. Bir ASCII dosyası seçilen karakteri (€) saklayamadığından, bash'in otomatik olarak bir UTF-8 dosyası oluşturduğunu unutmayın. UTF-8, Unicode için açık arayla en yaygın karakter kodlamasıdır; UTF-16 ve UTF-32 iki alternatif kodlamadır, ancak çok daha az kullanılırlar.
UTF-8 değişken genişlikli bir kodlamadır, yani farklı kod noktaları için farklı miktarlarda depolama kullanır. Her kod noktası, daha yaygın karakterlerin daha az alan gerektirmesi ve bir tür yerleşik sıkıştırma sağlaması amacıyla bir ile dört bayt arasında yer kaplar. Dezavantajı, belirli bir metin parçasının uzunluk veya boyut gereksinimlerini belirlemenin çok daha karmaşık hale gelmesidir.
ASCII Unicode'dur, ancak Unicode ASCII Değildir
Geriye dönük uyumluluk için, ilk 128 Unicode kod noktası eşdeğer ASCII karakterlerini temsil eder. UTF-8 bu karakterlerin her birini tek bir bayt ile kodladığından, herhangi bir ASCII metni de bir UTF-8 metnidir. Unicode, ASCII'nin bir üst kümesidir.
Ancak, yukarıda gösterildiği gibi, birçok Unicode dosyası bir ASCII bağlamında kullanılamaz. Sınırların dışında kalan herhangi bir karakter, beklenmedik bir şekilde, genellikle amaçlananlardan tamamen farklı ikame edilmiş karakterlerle görüntülenir.
Modern Kullanım
Çoğu amaç için, ASCII büyük ölçüde eski bir standart olarak kabul edilir. Yalnızca Latin alfabesini destekleyen durumlarda bile - Unicode'un karmaşıklıkları için tam destek gereksiz, örneğin - UTF-8 kullanmak ve ASCII'sinden yararlanmak genellikle daha uygundur uyumluluk.
Özellikle web sayfaları, HTML5 için varsayılan olan UTF-8 kullanılarak kaydedilmeli ve iletilmelidir. Bu, daha önce varsayılan olarak ASCII'de işlem gören ve Latin 1'in yerini alan önceki web'in tersidir.
Değişen Bir Standart
ASCII'nin son revizyonu 1986'da gerçekleşti.
Bunun aksine, Unicode yıllık olarak güncellenmeye devam ediyor. Yeni komut dosyaları, karakterler ve özellikle yeni emoji düzenli olarak eklenir. Bunların sadece küçük bir kısmı tahsis edildiğinde, tam karakter setinin öngörülebilir bir gelecek için büyümesi ve büyümesi muhtemeldir.
İlişkili: Açıklanan En Popüler 100 Emoji
Çok fazla emoji var, hepsinin ne anlama geldiğini bilmek zor olabilir. İşte açıklanan en popüler emojiler.
ASCII ve Unicode
ASCII, onlarca yıldır amacına hizmet etti, ancak Unicode artık eski sistemler dışındaki tüm pratik amaçlar için etkin bir şekilde yerini aldı. Unicode daha büyük ve dolayısıyla daha anlamlı. Dünya çapında, işbirliğine dayalı bir çabayı temsil eder ve biraz karmaşıklık pahasına da olsa çok daha fazla esneklik sunar.
ASCII metni şifreli görünür, ancak internette birçok kullanımı vardır.
- Teknoloji Açıklaması
- Emojiler
- Jargon
- Web Kültürü
- Unicode
Bobby, yirmi yılın büyük bir bölümünde yazılım geliştirici olarak çalışan bir teknoloji meraklısıdır. Switch Player Magazine'de İnceleme Editörü olarak çalışarak oyun oynama konusunda tutkulu ve çevrimiçi yayıncılık ve web geliştirmenin tüm yönlerine dalmış durumda.
Haber bültenimize abone ol
Teknoloji ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için haber bültenimize katılın!
Bir adım daha…!
Lütfen size az önce gönderdiğimiz e-postadaki e-posta adresinizi onaylayın.