UTF-16

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

  DC00 DFFE DFFF
D800 0100000103FE0103FF
D801 0104000107FE0107FF
DBFF 10FC0010FFFE  

Слід зазначити, що за стандартом ніякі символи не можуть мати коди власне з діапазону 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.

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.