UTF-16

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
  DC00 DFFE DFFF
D800 010000 0103FE 0103FF
D801 010400 0107FE 0107FF
DBFF 10FC00 10FFFE  

UTF-16 (англ. Unicode Transformation Format) в інформатиці — один із способів кодування символів із Unicode у вигляді послідовності 16-бітових слів. Символи з кодами менше 0x10000 (216) представляються як є, а символи з кодами 0x10000-0x10FFFF — у вигляді послідовності двох 16-бітових слів, перше з яких лежить в діапазоні 0xD800-0xDBFF, а друге — 0xDC00-0xDFFF. Зрозуміло, що є 210 * 210 = 220 таких комбінацій.

Слід зазначити, що за стандартом ніякі символи не можуть мати коди власне з діапазону 0xD800-0xDFFF (їх 2048, вони відзначені рудим і блакитним кольорами на діаграмі), так що розшифровка кодування завжди однозначна. Певна частина текстів у UTF-16 є просто послідовністями символів з UCS-2 (BMP), тому що символи Unicode після коду 0x10000 використовуються не дуже часто.

Історія

[ред. | ред. код]

Перша версія Юнікоду (1991 р.) була 16-бітною системою кодування з фіксованою шириною символу; загальне число різних символів було 216 (65 536). У другій версії Юнікоду (1996 р.) було вирішено значно розширити кодову область; для збереження сумісності з тими системами, де вже був реалізований 16-бітний Юнікод, і була створена UTF-16. Область 0xD800-0xDFFF, відведена для сурогатних пар, раніше належала до області «символів для приватного використання». Оскільки в UTF-16 можна відобразити 220 + 216 — 2048 (1112064) символів, то це число й було обрано новою величиною кодового простору Юнікоду.

UTF-16LE та UTF-16BE

[ред. | ред. код]

Один символ кодування UTF-16 поданий послідовністю двох байтів. Який із двох йде попереду, старший або молодший, залежить від порядку байтів. Систему, сумісну з процесорами x86, називають UTF-16LE (little endian), а з процесорами m68k і SPARC — UTF-16BE (big endian).

UTF-16 в ОС Windows

[ред. | ред. код]

У API Win32, поширеному в сучасних версіях операційної системи Microsoft Windows, є два способи представлення тексту: у формі традиційних 8-бітних кодових сторінок, і у вигляді UTF-16. У файлових системах NTFS, а також FAT з підтримкою довгих імен, імена файлів записуються в UTF-16LE.

Посилання

[ред. | ред. код]