Unicode hakkında bilmeniz gerekenler
Hemen hemen her geliştirici Unicode'u bilir, en azından Hearsay ile. Ancak, Unicode'un tam olarak ne olduğu, kodların ne olduğu ve nasıl ayrıntılı olarak çalıştığı pek çok şey açık değildir. Unicode hakkında ne bilmelisiniz?
Genel olarak bilindiği gibi, bilgisayarlar sadece genellikle iki durumla çalışır 0 VE 1 Onlar belirlenir. Bu bilgi birimine “ikili” ve “rakamlar” kelimesinden oluşan “bit” denir. Sekiz bit, yolda 256 farklı değeri temsil edebilen bir baytta özetlenir.
Bu, mektuplar, figürler, özel markalar veya noktalama işaretleri olsun, karakterlerin korunması için tek bir bayt idealdir. Bununla birlikte, bilgisayarların verileri değiştirmesi için, her bir karaktere sayısal bir kod atayan bir standart gereklidir. Bu sistem 1963 yılında “Bilgi Değişimi için Amerikan Standart Kodu” nu temsil eden “ASCII” adıyla sunuldu.
Ancak, ASCII kodu sadece yedi bit kullanır, bu da 128 olası karaktere dönüşür. İlk 32 karakter, tabülatör, line besleme veya çizgi film dönüşü gibi kontrol karakterleri için ayrılmıştır, bu nedenle 96 karakter harf, sayılar ve noktalama işaretleri için kalır. Büyük bir “A” ASCII'de 65 olarak kodlanır, örneğin 97 olarak küçük bir “A”. Örneğin boş alan ASCII 32 koduna karşılık gelir.
Sadece İngiliz ayrımı dünyasında hareket ettiğiniz sürece, tüm yaygın metinler temsil edilebilir, ancak diğer dillerle ilgili olarak? Almanca Umlauts gibi dile özgü özel spesiyaller ne olacak? Bunun için sekizinci biti kullanmaya başladı: Yol boyunca işaret 128 ila 256 karakter arasında genişletildi ve dilin belirli karakterleri barındırılabilir.
Bununla birlikte, illüstrasyonu her dil için geliştirilmiştir, örneğin Almanca Kod 129, Yunanca'da küçük bir “ü” e karşılık gelir, diğer yandan büyük “beta”. Ayrıca Rus ve çeşitli Asya dilleri için birkaç resim vardı. Bu çabalar ANSI standardına göre kod sayfaları olarak standartlaştırılmıştır. Örneğin, CodePage 437, Yunan kodlama 737 için geçerlidir.
Tüm kod sayfaları, ASCII sistemine karşılık geldikleri için ilk 128 karakterin aynı olduğu yaygındır, ancak ikinci 128 karakter ayrı ayrı işgal edilir. Ayrıca, farklı dillerin aynı anda eşlendiği bazı özel kod sayfaları geliştirilmiştir. Dilin 128 özel karakteri birçok Asya dili için çok az olduğundan, burada bir veya iki baytlı bir işareti temsil eden “Çift Byte Karakterler Seti” (DBC) tanıtıldı.
Önerilen editoryal içerik
Rızanızla, burada harici bir YouTube videosu (Google Ireland Limited) burada davet edilir.
YouTube videosu her zaman yüklenir
YouTube videosu artık yüklüyor
Unicode nedir?
Unicode kodları
UNICODE nihayet bu karışıklığı kodlama ve ülkenin dilsel veya spesifik yaklaşımlarıyla sona erdirmek için geliştirildi. Ana fikir, bir işareti temsilinden ayırmaktır: kullanılan karakter veya güçten bağımsız olarak büyük bir “A” büyük bir “A” dır. Bu yüzden görsel temsili değil, işaretin arkasındaki fikir.
Bir işaret olarak kabul edilen şey de belirlendi. Birçok dilde, bu soru sezgisel olarak kastetebileceğiniz kadar açık bir şekilde verilemez. Örneğin, Almanca'daki “ä” ayrı bir mektup mu yoksa sadece “AE” yazmanın alışılmadık bir yolu mu? Tarihsel olarak “SZ” olan “ß” ne olacak? Kelimenin sonunda kelimenin ortasından farklı bir şekilde yazılmış harfler, İbranice ve Arapça'da durum nasıl?
Bütün bunlar Unicode konsorsiyumu ve sonuç olarak çok adlandırılmış bir kod noktası tarafından tanımlanmıştır. Büyük “A”, örneğin U+0041 koduna karşılık gelir. Bir kod noktası, bir işaret için sayısal bir tanımlayıcıdan başka bir şey değildir. Unicode, iki baytla görüntülenebilen 65.536'dan fazla seçeneği bir milyondan fazla karakteri destekliyor. Kod noktaları nedeniyle bir karakter zinciri yolda eşleştirilebilir. “Merhaba” kelimesi, örneğin kod noktalarına karşılık gelir:
U+0048 U+0061 U+006C U+006C U+006F
Bu CodePint noktaları dizisini kaydetmek istiyorsanız, nasıl devam edeceğiniz konusunda çeşitli seçenekler vardır. Kodlar burada devreye giriyor.
Önerilen editoryal içerik
Rızanızla, burada harici bir YouTube videosu (Google Ireland Limited) burada davet edilir.
YouTube videosu her zaman yüklenir
YouTube videosu artık yüklüyor
Unicode kodları
Unicode'da kodlama
En basit seçenek, bayt gibi iki onaltılık figürü anlamaktır.
00 48 00 61 00 6C 00 6C 00 6F
Sonuçlar. Bu, yüksek seviyeli sistemlerin gerçekte nasıl davrandığı türüne karşılık gelir. Öte yandan düşük seviyeli bir sistem, Bytolge'ı aşağıdaki gibi kurtaracaktır:
48 00 61 00 6C 00 6C 00 6F 00
Bu nedenle, başlangıçta kullanılan sistemin ilgisinin sonu bilinmiyorsa, bir bayt kodlama daha net değildir. Bunu ayırt etmek için, sözde (BOM) adlı bayt sipariş markası, “fe ff” veya bir belgenin başında “ff fe” olarak yazılan Unicode'da tanıtıldı.
Bununla birlikte, farklı kodlama bu prosedürle ilgili tek sorun değildir: sistem ASCII ile uyumsuzdur ve birçok bayt sıfır için çok fazla bellek harcar. Bu, UTF-8'in geliştirilmesinin nedenidir, değişken sayıda bayt ile karakterize edilen bir standarttır: ilk 128 karakter tek bir bayt ile temsil edilir, hepsi daha sonra iki ila altı bayt. Dolayısıyla, İngilizce metinler için sıfır baytı dışarıda bırakmak mümkündür, bu da İngilizce metinler için UTF-8'in alanın çok daha fazla tasarrufu olduğu ve ASCII ile uyumlu olduğu anlamına gelir.
Bir yandan, UTF-8 son derece pratiktir, diğer yandan Unicode'u sunmanın üç farklı yolu vardır: UCS-2-he, UCS-2-LE ve UTF-8. Ve daha fazla kodlama var, örneğin UTF-7 ve UCS-4.
Önerilen editoryal içerik
Rızanızla, burada harici bir YouTube videosu (Google Ireland Limited) burada davet edilir.
YouTube videosu her zaman yüklenir
YouTube videosu artık yüklüyor
Unicode'da kodlama
Uygulamada Unicode
Kendinizi bilgilendirmek için ihtiyacınız olan şey, belgelerle basit bir metin değil, sadece bayt için. Doğru kodlamayı bilmeden, özel karakterler içeren belgeler nispeten ve güvenilir bir şekilde görüntülenemez veya yazdırılamaz. Bu yüzden kodlamayı bir şekilde belirtmek önemlidir.
Web siteleri için bu, örneğin “İçerik Türü” nin başlığı tarafından yapılır. Eksik ise, web tarayıcıları her zaman bariz nedenlerle işe yaramayan kentsel olarak düşmelidir. Böyle bir girişim başarısız olursa, web siteleri yanlış görüntülenir. Tabii ki, aynısı metin belgeleri, -Mail ve diğer dosyalar için de geçerlidir.
Yazılım geliştirme sırasında kod sağlamak da önemlidir. Örneğin, Node.js'de bir dosya yardımı ile yüklenir. fs.readFile-Kunksiyon, bir metin elde etmek için bir kodlama belirtilmelidir -Kodlama eksikse, baytlardan bir diziyi temsil eden yalnızca bir tampon elde edilir.
Bununla birlikte, saf bir swabın yeterli olduğu durumlar kesinlikle vardır. Bu durum, örneğin, veri şifrelemesinde olduğu gibi yalnızca bayt işlenmesi gerekiyorsa. En geç metin görüntülendiğinde, kodlama bilinmelidir.
Bir işaret potansiyel olarak farklı baytlarla temsil edildiğinden ve bir parçanın her zaman tam karakterler içerdiği garanti edilmediğinden, akışları işlerken dikkatli olmalısınız. Bir dizeden gelen Jaundas bile, işaretteki bir metnin uzunluğunu belirler veya karakter sayısı artık bayt sayısına karşılık gelmez.
Önerilen editoryal içerik
Rızanızla, burada harici bir YouTube videosu (Google Ireland Limited) burada davet edilir.
YouTube videosu her zaman yüklenir
YouTube videosu artık yüklüyor
Uygulamada Unicode
Sadece Unicode'da bir işaret
Unicode, Unicode Konsorsiyumu tarafından merkezi olarak yönetilmesine rağmen, diğer şeylerin yanı sıra işletim sistemleri ve çeşitli uygulamalar tarafından kullanılan özel kullanım alanları vardır. Bunun temeli, her biri 65.536 karakter içeren ve dönüşü bloklara bölünmüş toplam 17 uçakta Unicode bölümünü oluşturur.
Plan 0, temel çok dilli branda (BMP) olarak adlandırılan, Plan 1 kart oyunları için tarihsel karakterler ve özel karakterler, MAH-Jongg ve benzer amaçlar içeriyor, Plan 2 nihayet Asya dilleri için işaretler içeriyor. 3 ila 14 arasındaki uçaklar şu anda kullanılmamaktadır ve nihayet özel kullanım için branda 15 ve 16 serbest bırakılmaktadır. Biri burada A olarak adlandırılan özel kullanım alanından ve özel kullanım alanı B.
Tabii ki, bu PUAS'ı, herkesin aynı sunumuna sahip olması için ilgili tüm konularla kodlamayı reddetmek için kullanılması önemlidir. Aslında, bu sektördeki farklı işletim sistemleri ilgili bireysel karakterlerini çıkarır, ancak herkes potansiyel olarak yapabilir.
Önerilen editoryal içerik
Rızanızla, burada harici bir YouTube videosu (Google Ireland Limited) burada davet edilir.
YouTube videosu her zaman yüklenir
YouTube videosu artık yüklüyor
Sadece Unicode'da bir işaret
Çözüm
Unicode, modern ve küresel dünyada veri alışverişinin temelini oluşturur. Unicode olmadan, yabancı dillerde yazılı sorunsuz web sitelerini veya belgeleri görüntülemek, yazdırmak veya işlemek mümkün olmazdı. Bu bağlamda, Unicode sadece günlük yaşamın tüm geliştiricileri değil, aynı zamanda tüm geliştiricileri ve tüm kullanıcıları da ortaya çıkar.
Bu nedenle, sadece konuyla daha ayrıntılı olarak ele alınması açıktır, aksi takdirde en geç bir sonraki projede farklı dillerde yazılmış belgelerle yüzleşmesi zor olacaktır.
()