Uluslararasılaştırma

2.1  UTF-8 (RFC 3629)

UTF-8 (Unicode Transformation Format - 8bit) kodlaması UNICODE karakterlerini 1-6 byte uzunluğunda diziler olarak kodlar. ASCII kodlaması içinde 0-127 arasında kalan karakterler aynen kendi kodları ile kullanılır, diğerleri ise byte dizileri haline gelir.
U+00000000 - U+0000007F 0xxxxxxx
U+00000080 - U+000007FF 110xxxxx 10xxxxxx
U+00000800 - U+0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
U+00010000 - U+001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
U+00200000 - U+03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
U+04000000 - U+7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

UTF-8 şu özellikleri taşır:
  • Her saf (0-127 arası karakterlerden oluşan) ASCII dizisi geçerli bir UTF-8 dizisidir.
  • 0 ile 127 arası değerler kendi karakter karşılıkları dışında dizilerde geçmezler. Böylece örneğin '%', ':', '(', ')' gibi karakterleri parse edip, diğer karakterleri aynen geçiren parser ve programlar (ayrıca C printf benzeri fonksiyonları) diğer UNICODE karakterlerinden etkilenmezler.
  • Sıfır değerli byte dizi içinde geçmez. Böylece strlen gibi fonksiyonlar çalışmaya devam eder. Ancak gerçek karakter uzunluğu yerine byte uzunluğu döndürmeye devam ettiklerine dikkat edilmelidir.
  • Bir UTF-8 byte'ı bir karakterin kod dizisinin ilk byte'ı ise, kendisinden sonra kaç byte geleceği hemen anlaşılır. Herhangi bir byte'ın bir karakter kodunun dizisine ait olduğu tek bir bit kontrolü ile anlaşılır.
  • Boyer-Moore hızlı metin arama algoritması UTF-8 ile kullanılabilir.
  • UTF-8 - Unicode çevrimleri kolaydır.
  • UTF-8 dizilerini başka bir karakter kodlaması bilgisi olmaması durumunda istatistiksel olarak tesbit etmek kolaydır.
  • MIME kodlamalarında ve başka yerlerde 'UTF-8' biçiminde yazılır.
  • UTF-8 kullanan uygulamalar, güvenlik açısından her karakter dizisinin geçerliliğini kontrol etmelidir. Her olası byte dizisi geçerli bir UTF-8 dizisi değildir. Örnek olarak geçersiz UTF-8 dizisi 0xC0 0x80, eğer normal UTF-8 çevrimi işlemine sokulursa sıfır karakter değerini verir. Aynı şekilde 0x2F 0x2E 0x2E 0x2F (/../) yi yasaklayan bir program, geçersiz 0x2F 0xC0 0xAE 0x2E 0x2F dizisi ile kandırılabilir. Bu sebepten dışardan gelen her türlü UTF-8 dizisinin önce geçerliliği kontrol edilmelidir.
UTF-8 geriye uyumluluk sağlaması ve Türkçe için en az bellek israfına yol açması nedeniyle Uludağ projesinde öntanımlı karakter kodlaması olarak tercih edilmiştir.

Information and documents on Pardus web pages can be used freely anywhere with original source credit.
For information and suggestion(s) please write to info_at_pardus.org.tr
TÜBİTAK - UEKAE, PK.74 41470, Gebze / Kocaeli.