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.

Посилання

  • Unicode Technical Note #12: Обробка UTF-16 [Архівовано 3 грудня 2021 у Wayback Machine.] (англ.)
  • Unicode FAQ: У чому різниця UCS-2 і UTF-16? [Архівовано 11 січня 2011 у Wayback Machine.] (англ.)
  • п
  • о
  • р
Кодування символів
Історичні
кодування
докомп'ютерні
семафорна (Макарова)
Морзе
Бодо
МТК-2
комп'ютерні
6-бітне
УПП
RADIX-50
EBCDIC
ДКОІ
КОІ-7
ISO 646
сучасне
8-бітове
подання
символи
ASCII
керувальні
друковані
не-ASCII
псевдографіка
8-бітові код.стор.
кирилиця
КОІ-8
Основне кодування
MacCyrillic
ISO 8859
1 (лат.)
2
3
4
5 (кир.)
6
7
8
9
10
11
12
13
14
15 (€)
16
Windows
1250
1251 (кир.)
1252
1253
1254
1255
1256
1257
1258
WGL4
IBM & DOS
437
850
852
855
866 «альт.»
МІК
Багатобайтові
традиційні
DBCS
GB2312
HTML
юнікод
UTF-32
UTF-16
UTF-8
список символів
кирилиця