İngilizce dilinde oku

Aracılığıyla paylaş


Unicode

Unicode, dünya çapında bir karakter kodlama standardıdır. Sistem, karakter ve dize işleme için yalnızca Unicode kullanır. Unicode'un tüm yönlerinin ayrıntılı açıklaması için bkz. Unicode Standart.

Unicode, karakter ve dize verilerini işlemeye yönelik eski mekanizmalarla karşılaştırıldığında yazılım yerelleştirmesini basitleştirir ve çok dilli metin işlemeyi geliştirir. Uygulamalarınızdaki karakter ve dize verilerini temsil etmek için Unicode kullanarak, olası her karakter kodu için tek bir ikili dosya kullanarak genel pazarlama için evrensel veri değişimi özelliklerini etkinleştirebilirsiniz. Unicode aşağıdakileri yapar:

  • Herhangi bir betik ve dil bileşiminden çizilmiş karakterlerin tek bir belgede birlikte bulunmasına olanak tanır.
  • Her karakter için semantiği tanımlar.
  • Betik davranışını standartlaştırır.
  • Çift yönlü metin için standart bir algoritma sağlar.
  • Diğer standartlara yönelik çapraz eşlemeleri tanımlar.
  • Tek karakter kümesinin birden çok kodlamasını tanımlar: UTF-7, UTF-8, UTF-16 ve UTF-32. Verilerin bu kodlamalar arasında dönüştürülmesi kayıpsızdır.

Unicode, dünyanın dört bir yanındaki diller tarafından kullanılan çok sayıda betik ve yayımlamada kullanılan çok sayıda teknik simge ve özel karakteri destekler. Desteklenen betikler Latin, Yunanca, Kiril, İbranice, Arapça, Devanagari, Tayca, Han, Hangul, Hiragana ve Katakana'yı içerir ancak bunlarla sınırlı değildir. Desteklenen diller Almanca, Fransızca, İngilizce, Yunanca, Rusça, İbranice, Arapça, Hintçe, Tayca, Çince, Korece ve Japonca dillerini içerir ancak bunlarla sınırlı değildir. Unicode şu anda dünyanın dört bir yanındaki modern bilgisayar kullanımında karakterlerin büyük çoğunluğunu temsil edebilir ve daha da eksiksiz hale getirmek için güncelleştirilmeye devam eder.

Unicode özellikli işlevler, İşlev Prototipleri içinKuralları'nda açıklanmıştır. Bu işlevler, En yaygın Unicode kodlaması olan ve Windows işletim sistemlerinde yerel Unicode kodlaması için kullanılan UTF-16 (geniş karakter) kodlamasını kullanır. Her kod değeri, 8 bit kod değerleri kullanan karakter ve dize verilerine yaklaşım eski kod sayfasının aksine 16 bit genişliğindedir. 16 bit kullanımı, 65.536 karakterin doğrudan kodlamasını sağlar. Aslında, insan dillerinin dökümünü almak için kullanılan sembollerin evreni bundan daha da büyüktür ve U+D800 ile U+DFFF aralığındaki UTF-16 kod noktaları ek karakterlerin 32 bit kodlamalarını oluşturan vekil çiftler oluşturmak için kullanılır. Daha fazla bilgi için bkz. Vekiller ve Ek Karakterler.

Unicode karakter kümesi, U+0308 (" ̈") gibi çok sayıda birleştirme karakteri, bir birleştirme dieresis veya umlaut içerir. Unicode genellikle bir ''composed'' veya ''ayrıştırılmış'' biçiminde aynı karakteri temsil edebilir: örneğin, "Ä"nın oluşturulmuş biçimi tek Unicode kod noktası "Ä" (U+00C4), ayrıştırılmış biçimi ise "A" + " ̈" (U+0041 U+0308) şeklindedir. Unicode, her karakter için oluşturulmuş bir form tanımlamaz. Örneğin, circumflex ve tilde ("ỗ") ile Vietnam küçük harfli "o" U+006f U+0302 U+0303 (o + Circumflex + Tilde) ile temsil edilir. Karakterleri ve ilgili sorunları birleştirme hakkında daha fazla bilgi için bkz. Dizeleri Temsil Etmek için Unicode Normalleştirme kullanma .

8 bit ve 7 bit ortamlarla uyumluluk için Unicode sırasıyla UTF-8 ve UTF-7 olarak da kodlanabilir. Windows'ta Unicode özellikli işlevler UTF-16 kullansa da, Windows'ta çok baytlı karakter kümesi olarak desteklenen UTF-8 veya UTF-7 ile kodlanmış verilerle çalışmak da mümkündür kod sayfaları.

Yeni Windows uygulamaları, iç veri gösterimi olarak UTF-16 kullanmalıdır. Windows ayrıca kod sayfaları için kapsamlı destek sağlar ve aynı uygulamada karma kullanım mümkündür. Yeni Unicode tabanlı uygulamaların bile bazen kod sayfalarıyla çalışması gerekir. Bunun nedenleri Kod Sayfaları'nda ele alınıyor.

Bir uygulama, kod sayfaları ve Unicode dizeleri temelinde dizeler arasında dönüştürme yapmak için MultiByteToWideCharve WideCharToMultiByteişlevlerinikullanabilir. Adları "MultiByte" ifadesine başvursa da, bu işlevler tek baytlı karakter kümesi (SBCS), çift baytlık karakter kümesi (DBCS) ve çok baytlı karakter kümesi (MBCS) kod sayfalarıyla eşit şekilde çalışır.

Genellikle, bir Windows uygulaması UTF-16'yı dahili olarak kullanmalıdır ve yalnızca başka bir biçim kullanması gereken arabirim üzerinde "ince bir katmanın" parçası olarak dönüştürülmelidir. Bu teknik, veri kaybına ve bozulmasına karşı savunma sağlar. Her kod sayfası farklı karakterleri destekler, ancak hiçbiri Unicode tarafından sağlanan karakterlerin tam spektrumunu desteklemez. Kod sayfalarının çoğu farklı kodlanmış farklı alt kümeleri destekler. UTF-8 ve UTF-7 kod sayfaları, unicode karakter kümesinin tamamını desteklediğinden ve bu kodlamalar ile UTF-16 arasındaki dönüştürme kayıpsız olduğundan bir özel durumdur.

Bir kod sayfası tarafından kullanılan kodlamadan diğerinin kullandığı kodlamaya doğrudan dönüştürülen veriler bozulmaya tabidir çünkü farklı kod sayfalarında aynı veri değeri farklı bir karakteri kodlayabilir. Uygulamanız mümkün olduğunca arabirime yakın bir şekilde dönüştürme yaparken bile, işlenmek üzere veri aralığı hakkında dikkatli bir şekilde düşünmeniz gerekir.

Unicode'dan kod sayfasına dönüştürülen veriler veri kaybına tabidir, çünkü belirli bir kod sayfası söz konusu Unicode verilerinde kullanılan her karakteri gösteremeyebilir. Bu nedenle, hedef kod sayfası Unicode dizesindeki karakterlerin tümünü gösteremiyorsa WideCharToMultiBytebazı verilerin kaybolabileceğini unutmayın.

Kod sayfası tabanlı eski uygulamaları Unicode kullanacak şekilde modernleştirirken, uygulamanızın iki sürümünün derlendiği tek bir kaynak kümesini korumak için genel işlevleri ve METNEÇEVİr makrosunu kullanabilirsiniz. Bir sürüm Unicode'ı destekler ve diğeri Windows kod sayfalarıyla çalışır. Bu mekanizmayı kullanarak, dönüştürmenin tüm aşamalarında derlenebilir, derlenebilir ve test edilebilen uygulama kaynaklarını korurken Çok büyük uygulamaları Bile Windows kod sayfalarından Unicode'a dönüştürebilirsiniz. Daha fazla bilgi için bkz. İşlev Prototipleri içinKuralları.

Unicode karakterler ve dizeler, kod sayfa tabanlı karakterler ve dizeler için bunlardan farklı veri türlerini kullanır. Bu ayrım, bir dizi makro ve adlandırma kuralının yanı sıra iki karakter verisi türünü yanlışlıkla karıştırma olasılığını da en aza indirir. Yalnızca Unicode parametre değerlerinin Unicode dizeleri bekleyen işlevlerle kullanıldığından emin olmak için derleyici türü denetimini kolaylaştırır.

Karakter Kümeleri

Sıralama

Vekiller ve Ek Karakterler

Dizeleri Temsil Etmek için Unicode Normalleştirme kullanma