Uluslararasılaştırma

2.2  UTF-16 (RFC 2781)

UTF-16 (Unicode Transformation Format - 16bit), Unicode BMP içinde kalan karakterleri 2 byte'lık diziler olarak kodlar. BMP dışında kalan karakterleri kodlayabilmek için surrogate pair (vekil çift?) denen 4 byte'lık diziler kullanılır.
U+00000000 - U+0000FFFF xxxxxxxx xxxxxxxx
U+00010000 - U+0010FFFF 110110xx xxxxxxxx 110111xx xxxxxxxx

Çiftin üst on bitini içeren kısmı 0xD800 ile 0xDBFF arasındayken, alt on biti taşıyan kısım 0xDC00 ile 0xDFFF arasındadır. Bu değerler arasındaki 16 bitlik değerler Unicode üzerinde özel olarak UTF-16'ya ayrılmış ve hiç bir karaktere atanmamıştır.

İşlemciler 16 bitlik değerleri bellekte tutmak için farklı yöntemler kullanmaktadır. Örneğin 258 (0x0102) değeri little-endian işlemcilerde 0x02 0x01, big-endian işlemcilerde ise 0x01 0x02 diziliminde tutulmaktadır.

UTF-16 dizileri için bir endian standardı belirlenmemiştir. Metin UTF-16BE ya da UTF-16LE olarak işaretlenmemişse (MIME, vb ile) işleyici metnin ilk iki byte'ına bakar. Byte sıra işareti (Byte Order Mark, BOM) adlı karakter (0xFEFF) metnin byte sıralanmasını göstermek için ayrılmıştır. İlk iki byte 0xFF 0xFE ise metin little-endian, 0xFE 0xFF ise big-endian olarak işlenir. UTF-16 metinleri birbirine eklerken araya gelen BOM karakterini çıkartmaya dikkat edilmelidir. İşaretlenmemiş ve BOM taşımayan diziler için bir yol gösterilmemiş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.