Evrensel Kodlu Karakter Seti - Universal Coded Character Set

Evrensel Kodlu Karakter Seti
takma ad(lar) UCS, Unicode
Diller) Uluslararası
Standart ISO/IEC 10646
kodlama biçimleri UTF-8 , UTF-16 , GB18030
Daha az yaygın : UTF-32 , BOCU , SCSU , UTF-7
Öncesinde ISO 8859 , ISO 2022 , çeşitli diğerleri.

Evrensel Kodlu Karakter Kümesi ( UCS , Unicode ) standart bir dizi karakterleri ile tanımlanan Uluslararası Standart ISO / IEC  10646 , Bilgi teknolojisi - Evrensel Kodlu Karakter Kümesi (UCS) (artı bu standarda değişiklikler), birçok temelidir karakter kodlamaları , daha önce temsil edilmeyen yazı sistemlerinden karakterler eklendikçe geliştiriliyor.

UCS'nin kullanım/tahsis için 1.1 milyondan fazla olası kod noktası vardır, ancak yalnızca Temel Çok Dilli Düzlem (BMP) olan ilk 65.536, 2000'den önce ortak kullanıma girmiştir. Bu durum , Çin Halk Cumhuriyeti ( PRC), 2006 yılında kendi yetki alanında satılan tüm yazılımların GB 18030'u desteklemesi gerektiğine karar verdi . BMP'nin ötesine geçmek için ÇHC'de satılması amaçlanan bu gerekli yazılım.

Sistem, BMP'de bile, karakterlere atanmamış birçok kod noktasını kasıtlı olarak bırakır. Bunu, gelecekteki genişlemeye izin vermek veya diğer kodlama biçimleriyle çakışmaları en aza indirmek için yapar.

Kodlama formları

ISO/IEC 10646 , Evrensel Kodlu Karakter Kümesi için üç karakter kodlama biçimi (ve yedi kodlama şeması ) tanımlar . UCS-2 artık bunlardan biri değil, en basitiydi ve artık modası geçmiş, tek bir kod değeri kullanıyor (bir veya daha fazlası genel olarak bir kod noktasını temsil eden bir sayı olarak tanımlanır, ancak UCS-2 için her karakter için 0 ile 65.535 arasında bir kod noktasını temsil eden kesinlikle bir kod değeridir ve tam olarak iki baytın (bir 16 bitlik kelime) bu değeri temsil etmesine izin verir. UCS-2 böylece BMP'de bir karakteri temsil eden her kod noktasının ikili gösterimine izin verir. UCS-2, BMP dışındaki kod noktalarını temsil edemez.

UCS'nin orijinal baskısında yapılan ilk değişiklik , BMP dışındaki kod noktalarını temsil etmek için UCS-2'nin bir uzantısı olan UTF-16'yı tanımladı . BMP'nin S (Özel) Bölgesindeki bir dizi kod noktası, karakterlere atanmamış olarak kalır. UCS-2, bu kod noktaları için kod değerlerinin kullanımına izin vermez, ancak UTF-16 bunların çiftler halinde kullanılmasına izin verir. Unicode ayrıca UTF-16'yı benimsemiştir, ancak Unicode terminolojisinde, yüksek yarım bölge öğeleri "yüksek vekiller" haline gelir ve düşük yarım bölge öğeleri "düşük vekiller" olur.

Başka bir kodlama olan UTF-32 (önceki adıyla UCS-4), kod alanının tek bir karakterini kodlamak için dört bayt (toplam 32 bit) kullanır . Böylece UTF-32, BMP dışındakiler de dahil olmak üzere UCS'deki her kod noktasının ikili gösterimine izin verir. UCS-2'de olduğu gibi, her kodlanmış karakterin bayt cinsinden sabit bir uzunluğu vardır, bu da manipüle edilmesini kolaylaştırır, ancak elbette UCS-2'den iki kat daha fazla depolama gerektirir.

Şu anda, baskın UCS kodlaması, ASCII ile geriye dönük uyumluluk ve UTF-16 ve UTF-32'deki endianness ve bayt sırası işaretlerinin komplikasyonlarından kaçınmak için tasarlanmış değişken genişlikli bir kodlama olan UTF-8'dir . Tüm Web sayfalarının %97'sinden fazlası UTF-8 ile kodlanmıştır. İnternet Mühendisliği Görev Gücü (IETF), tüm İnternet protokollerinin karakter verileri için kullanılan kodlamayı tanımlamasını gerektirir ve desteklenen karakter kodlamaları UTF-8'i içermelidir. Internet Mail Consortium (IMC), tüm e-posta programlarının UTF-8 kullanarak posta görüntüleyebilmesini ve oluşturabilmesini önerir. Ayrıca işletim sistemlerinde, programlama dillerinde, API'lerde ve yazılım uygulamalarında varsayılan karakter kodlaması olarak giderek daha fazla kullanılmaktadır.

Tarih

Uluslararası Standardizasyon Teşkilatı (ISO) 1989 yılında evrensel karakter kümesi oluşturmak için yola ve 1990 yılında ISO 10646 taslağını yayınladı Hugh McGregor Ross başlıca mimarlarından biriydi. Bu standart, mevcut olandan önemli ölçüde farklıydı. Tanımladı:

  • 128 grup
  • 256 uçak
  • 256 sıra
  • 256 hücre,

görünür bir toplam 2.147.483.648 karakter için, ancak politika , dört bayttan herhangi birinde C0 ve C1 kontrol kodlarının bayt değerlerini (0x00 ila 0x1F ve 0x80 ila 0x9F, onaltılık gösterimde) yasakladığı için aslında standart yalnızca 679.477.248 karakteri kodlayabilir. grup, düzlem, satır ve hücre belirtme. Örneğin Latin büyük harfi A, 0x20 grubunda, 0x20 düzleminde, 0x20 satırında, 0x41 hücresinde bir konuma sahipti.

Bu ilkel ISO 10646 standardının karakterleri üç yoldan biriyle kodlanabilir:

  1. UCS-4, her karakter için dört bayt, tüm karakterlerin basit bir şekilde kodlanmasını sağlar;
  2. UCS-2, her karakter için iki bayt, ilk düzlemin kodlanmasını sağlayan, 0x20, İlk 36.864 kod noktasını içeren Temel Çok Dilli Düzlem, doğrudan ve ISO 2022 kaçış dizileriyle bunlara geçiş yaparak diğer düzlemler ve gruplar ;
  3. UTF-1 , tüm karakterleri değişen uzunluklarda (1 ila 5 bayt, her biri kontrol kodu içermeyen) bayt dizilerinde kodlar.

Bu nedenle 1990'da evrensel bir karakter kümesi için iki girişim vardı: Unicode , her karakter için 16 bit (65,536 olası karakter) ve ISO 10646. Yazılım şirketleri, ISO standardının karmaşıklığını ve boyut gereksinimini kabul etmeyi reddettiler ve bir dizi ISO Ulusal Organını buna karşı oy kullanmaya ikna etmek. ISO standardizatörleri, standardı mevcut durumunda desteklemeye devam edemeyeceklerini fark ettiler ve standartlarının Unicode ile birleştirilmesi için müzakere ettiler. İki değişiklik gerçekleşti: karakterler üzerindeki sınırlamanın kaldırılması (kontrol kodu değerlerinin yasaklanması), böylece tahsis için 0x0000101F gibi kod noktalarının açılması; ve Temel Çok Dilli Düzlem repertuarının Unicode'unkiyle senkronizasyonu.

Bu arada, zamanla, Unicode standardının kendisinde durum değişti: 65,536 karakter yetersiz görünmeye başladı ve sürüm 2.0 ve sonrasındaki standart , UTF-16 vekil mekanizma aracılığıyla 17 düzlemden 1.112.064 kod noktasının kodlanmasını destekliyor. . Bu nedenle, ISO 10646, UTF-16 tarafından kodlanabilecek kadar çok karakter içerecek ve daha fazlasını içermeyecek, yani 679 milyon yerine bir milyondan biraz fazla karakter içerecek şekilde sınırlandırıldı. ISO 10646'nın UCS-4 kodlaması, programların dahili verileri dışında neredeyse hiçbir kullanımı olmamasına rağmen , UTF-16 aralığıyla sınırlı olarak ve UTF-32 adı altında Unicode standardına dahil edildi .

Plan 9 işletim sisteminin tasarımcıları Rob Pike ve Ken Thompson , şu anda en popüler UCS kodlaması olan UTF-8 olarak adlandırılan yeni, hızlı ve iyi tasarlanmış bir karma genişlikli kodlama tasarladılar .

Unicode'dan Farklar

ISO 10646 ve Unicode aynı repertuara ve sayılara sahiptir; Unicode'un yeni sürümler yayınlamasına ve daha sık yeni karakterler eklemesine rağmen, her iki standartta da aynı sayılara sahip aynı karakterler bulunur. Unicode'un ISO 10646 kapsamı dışında kuralları ve özellikleri vardır. ISO 10646, ISO 8859 gibi önceki standartların bir uzantısı olan basit bir karakter haritasıdır . Buna karşılık, Unicode, harmanlama , formların normalleştirilmesi ve Arapça ve İbranice gibi sağdan sola komut dosyaları için iki yönlü algoritma için kurallar ekler . Platformlar arasında birlikte çalışabilirlik için, özellikle çift yönlü komut dosyaları kullanılıyorsa, ISO 10646'yı desteklemek yeterli değildir; Unicode uygulanmalıdır.

Bu kuralları ve algoritmaları desteklemek için Unicode, bir karakterin varsayılan çift yönlü sınıfını belirleyen özellikler ve karakterin diğer karakterlerle nasıl birleştiğini belirleyen özellikler gibi kümedeki her karaktere birçok özellik ekler . Karakter, Avrupa sayısı '8' veya kaba '¼' gibi sayısal bir değeri temsil ediyorsa, bu sayısal değer de karakterin bir özelliği olarak eklenir. Unicode, bu özelliklerin bir dil karışımıyla birlikte çalışabilir metin işlemeyi desteklemesini amaçlar.

Bazı uygulamalar ISO 10646 karakterlerini destekler ancak Unicode'u tam olarak desteklemez. Böyle bir uygulama olan Xterm , bire bir karakterden glife eşlemeye ve tek yönlülüğe sahip tüm ISO 10646 karakterlerini düzgün bir şekilde görüntüleyebilir. Bazı birleştirme işaretlerini basit üst üste bindirme yöntemleriyle işleyebilir, ancak İbranice (çift yönlü), Devanagari (bir çok glif için bir karakter) veya Arapça (her iki özellik) görüntüleyemez. Çoğu GUI uygulaması, bu tür komut dosyalarını işleyen standart OS metin çizim rutinlerini kullanır, ancak uygulamaların kendileri bunları her zaman doğru şekilde işlemez.

Evrensel Kodlu Karakter Kümesini Atıf Yapmak

ISO /IEC 10646 standartlar ailesi için genel, resmi olmayan bir alıntı olan ISO 10646, çoğu düzyazıda kabul edilebilir. Ve ayrı bir standart olmasına rağmen, Unicode terimi , UCS tartışılırken aynı sıklıkta, gayri resmi olarak kullanılır. Ancak, bir yayın olarak UCS'ye yapılan herhangi bir normatif referans, baskının yılını ISO/IEC 10646:{yıl} biçiminde belirtmelidir, örneğin: ISO/IEC 10646:2014 .

Unicode ile İlişki

1991'den beri, Unicode Konsorsiyumu ve ISO , Unicode Standardı ("Unicode") ve ISO/IEC 10646'yı birlikte geliştirmiştir. Unicode Sürüm 2.0'ın repertuarı, karakter adları ve kod noktaları, yayınlanmış ilk yedi değişikliğiyle birlikte ISO/IEC 10646-1:1993'ünkilerle tam olarak eşleşir. Şubat 2000'de Unicode 3.0 yayınlandıktan sonra, ilgili yeni ve güncellenmiş karakterler ISO/IEC 10646-1:2000 aracılığıyla UCS'ye girdi. 2003 yılında, ISO/IEC 10646'nın 1. ve 2. bölümleri tek bir bölümde birleştirildi ve o zamandan beri, Unicode standardı ile yaklaşık olarak senkronize olarak standarda karakterler ekleyen bir dizi değişiklik yapıldı.

  • ISO/IEC 10646-1:1993 = Unicode 1.1
  • ISO/IEC 10646-1:1993 artı 5 ila 7 arasındaki Değişiklikler = Unicode 2.0
  • ISO/IEC 10646-1:1993 artı Değişiklikler 5 ila 7 = Değişiklik 18'de yer alan Euro İşareti ve Nesne Değiştirme Karakteri hariç Unicode 2.1
  • ISO/IEC 10646-1:2000 = Unicode 3.0
  • ISO/IEC 10646-1:2000 ve ISO/IEC 10646-2:2001 = Unicode 3.1
  • ISO/IEC 10646-1:2000 artı Değişiklik 1 ve ISO/IEC 10646-2:2001 = Unicode 3.2
  • ISO/IEC 10646:2003 = Unicode 4.0
  • ISO/IEC 10646:2003 artı Değişiklik 1 = Unicode 4.1
  • ISO/IEC 10646:2003 artı Değişiklikler 1 ila 2 = Değişiklik 3'te yer alan Devanagari Harfleri GGA, JJA, DDDA ve BBA hariç Unicode 5.0
  • ISO/IEC 10646:2003 artı 1 ila 4 arası Değişiklikler = Unicode 5.1
  • ISO/IEC 10646:2003 artı 1 ila 6 arasındaki Değişiklikler = Unicode 5.2
  • ISO/IEC 10646:2003 artı 1 ila 8 arasındaki Değişiklikler = ISO/IEC 10646:2011 = Hindistan Rupisi İşareti hariç Unicode 6.0
  • ISO/IEC 10646:2012 = Unicode 6.1
  • ISO/IEC 10646:2012 = Değişiklik 1'de yer alan Türk Lirası İşareti hariç Unicode 6.2
  • ISO/IEC 10646:2012 = Değişiklik 1'de yer alan Türk Lirası İşareti ve beş çift yönlü kontrol karakteri (Arapça Harf İşareti, Soldan Sağa İzole, Sağdan Sola İzole, İlk Güçlü İzolat, Pop) hariç Unicode 6.3 Yönlendirme İzolatı), Değişiklik 2'ye dahil edilmiştir.
  • ISO/IEC 10646:2012 artı Değişiklik 1 ve 2 = Ruble işareti hariç Unicode 7.0
  • ISO/IEC 10646:2014 artı Değişiklik 1 = Lari işareti , dokuz CJK birleşik ideograf ve 41 emoji karakteri hariç Unicode 8.0
  • ISO/IEC 10646:2014 artı Değişiklik 1 ve 2 = Adlam, Newa, Japon TV sembolleri ve 74 emoji ve sembol hariç Unicode 9.0
  • ISO/IEC 10646:2017 = 285 Hentaigana karakteri, 3 Zanabazar Kare karakteri ve 56 emoji sembolü hariç Unicode 10.0
  • ISO/IEC 10646:2017 artı Değişiklik 1 = 46 Mtavruli Gürcü büyük harf, 5 CJK birleşik ideograf ve 66 emoji karakteri hariç Unicode 11.0
  • ISO/IEC 10646:2017 artı Değişiklik 1 ve 2 = 62 ek karakter hariç Unicode 12.0
  • ISO/IEC 10646:2020 = Unicode 13.0
  • ISO/IEC 10646:2021 = Unicode 14.0

Ayrıca bakınız

Notlar

Referanslar

Dış bağlantılar