UTF-16: Różnice pomiędzy wersjami

[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
m maryt
m meryt
Linia 1:
<!-- Tego artykułu proszę nie przenosić do Wikisources -->
'''UTF-16''' ([[język angielski|ang.]] ''16-bit Unicode Transformation Format'') – w [[Informatyka|informatyce]] jeden ze sposobów kodowania znaków standardu [[Unicode]]. Sposób ten wymaga użycia szesnastobitowych słów ([[Język angielski|ang.]] ''word''), przy czym dla znaków na pozycjach poniżej U+10000 (dziesiętnie 65536), a dokładnie w zakresach od U+0000 do U+D7FF i U+E000 do U+FFFF, używane jest jedno słowo, którego wartość odpowiada dokładnie pozycji znaku w standardzie.
Dla znaków z wyższych pozycji używa się dwóch słów, pierwsze z nich należy do przedziału od U+D800 do U+DBFF, drugie natomiast od U+DC00 do U+DFFF. Na przykład znak o kodzie U+10000 zostanie zamieniony na sekwencję 0xD800 0xDC00, zaś znak o kodzie 0x10FFFD (górna granica unikodu) na 0xDBFF 0xDFFD. W standardzie [[Unicode]] pozycjom z przedziału U+D800 – U+DFFF nie są przypisane żadne [[symbol|znaki]], zatem każda sekwencja słów kodowych jest interpretowana jednoznacznie.
 
Dla znaków z wyższych pozycji używa się dwóch słów, pierwsze z nich należy do przedziału od U+D800 do U+DBFF, drugie natomiast od U+DC00 do U+DFFF. Oznacza to, iż znaki z zakresu od U+10000 do U+10FFFF kodowane są w następujący sposób:
* od numeru znaku odejmowane jest 0x10000, tak aby pozostała 20-bitowa liczba z zakresu od 0 do 0xFFFFF;
* wartość tworzona przez najstarsze 10 bitów tej liczby jest dodawana do 0xD800 i otrzymuje się bardziej znaczące 16-bitowe słowo z zakresu od 0xD800 do 0xDBFF;
* pozostałe 10 młodszych bitów jest dodawane do 0xDC00, co daje mniej znaczące 16-bitowe słowo z zakresu od 0xDC00 do 0xDFFF.
 
Dla znaków z wyższych pozycji używa się dwóch słów, pierwsze z nich należy do przedziału od U+D800 do U+DBFF, drugie natomiast od U+DC00 do U+DFFF. Na przykład znak o kodzie U+10000 zostanie zamieniony na sekwencję 0xD800 0xDC00, zaś znak o kodzie 0x10FFFD0x10FFFF (górna granica unikodu) na 0xDBFF 0xDFFD0xDFFF. W standardzie [[Unicode]] pozycjom z przedziału od U+D800 do U+DFFF nie są przypisane żadne [[symbol|znaki]], zatem każda sekwencja słów kodowych jest interpretowana jednoznacznie.
 
W systemach Windows kodowanie to jest najczęściej używane do wewnętrznego przechowywania napisów Unicode<ref name="wxw">[http://docs.wxwidgets.org/3.0/overview_unicode.html Unicode Support in wxWidgets]</ref>.