UTF-16

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

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.

Посилання[ред.ред. код]