UTF-32 (англ. Unicode Transformation Format) або UCS-4 (універсальний набір символів, англ. Universal Character Set) в інформатиці — один зі способів кодування символів Юнікоду, який використовує для кодування будь-якого символу рівно 32 біти. Інші кодування, UTF-8 і UTF-16, використовують для подання символів змінну кількість байтів. Символ UTF-32 є прямим поданням його [en]
Головна перевага UTF-32 перед кодуванням змінної довжини полягає в тому, що символи Юнікоду індексуються безпосередньо. Отримання n-ї кодової позиції є операцією, що займає однаковий час. І навпаки: коди зі змінною довжиною вимагають послідовного доступу до n-ї кодової позиції. Це робить заміну символів у рядках UTF-32 простою, індексом для цього є ціле число, як зазвичай робиться для рядків ASCII.
Головний недолік UTF-32 — це неефективне використання пам'яті, оскільки для зберігання символу використовується чотири байти. Символи, що лежать поза нульовою (базовою) площиною кодового простору, рідко застосовуються в більшості текстів. Тому подвоєння, порівняно з UTF-16, займаного рядками в UTF-32 обсягу, не виправдане.
Хоча використання незмінного числа байтів на символ зручне, але не настільки, як здається. Операція обрізання рядків реалізується легше, порівняно з UTF-8 та UTF-16. Але це не робить швидшим знаходження конкретного зміщення в рядку, оскільки зміщення може обчислюватися і для кодувань фіксованого розміру. Це не полегшує обчислення видимої ширини рядка, за винятком обмеженої кількості випадків, тому що навіть символ «фіксованої ширини» може отримуватися комбінуванням звичайного символу з модифікувальним, який не має ширини. Наприклад, літеру «й» можна отримати з літери «и» та діакритичного знака «гачок над літерою». Поєднання таких знаків означає, що текстові редактори не можуть розглядати 32-розрядний код як одиницю редагування. Редактори, які обмежуються роботою з мовами з письмом зліва направо та складеними символами (англ. precomposed character) можуть використовувати символи фіксованого розміру. Але такі редактори навряд чи підтримають символи, що лежать поза нульовою (базовою) площиною кодового простору і навряд чи зможуть працювати однаково добре із символами UTF-16.
Історія
Стандарт ISO 10646 визначає 31-бітову форму кодування, названу UCS-4, в якій кожен закодований символ подано 32-розрядним значенням коду кодового простору чисел від 0 до 7FFFFFFF.
Оскільки насправді використовується лише 17 площин, то коди всіх символів мають значення від 0 до 0x10FFFF. UTF-32 — це підмножина UCS-4, яка використовує лише цей діапазон. Оскільки документ JTC1/SC2/WG2 встановлює, що всі майбутні призначення символів будуть обмежені нульовою (базовою) площиною кодового простору або першими додатковими 14 площинами, то UTF-32 зможе подати всі символи Юнікоду. Відповідно, UCS-4 і UTF-32 нині ідентичні, за винятком того, що стандарт UTF-32 має додаткову семантику Юнікоду.
Використання
UTF-32 застосовується, переважно, не в рядках символів, а у внутрішніх API, де дані є єдиною кодовою позицією або гліфом. Наприклад, при промальовуванні тексту на останньому кроці будується список структур, кожна з яких включає позиції x і у, атрибути і єдиний символ UTF-32, що ідентифікує гліф для промальовування. Часто в «11 бітах, що не використовуються», кожного 32-бітового символу зберігають сторонню інформацію.
UTF-32 використовують для зберігання рядків у Unix тоді, коли тип wchar_t визначено як 32-бітовий. Програми на Python версії 3.2 включно можна було відкомпілювати для використання UTF-32 замість UTF-16. Від версії 3.3 підтримку UTF-16 видалено, і рядки зберігаються в UTF-32, але початкові нулі, в разі їх невикористання, оптимізуються. У Windows, де тип wchar_t має розмір 16 біт, рядки UTF-32 майже не використовуються.
Невикористання UTF-32 в HTML5
Стандарт HTML5 говорить, що «автори не повинні використовувати UTF-32, оскільки алгоритми визначення кодування, описані в даній специфікації, не відрізняють його від UTF-16».
Посилання
- Повний опис стандарту Unicode [ 12 березня 2014 у Wayback Machine.](англ.)
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
UTF 32 angl Unicode Transformation Format abo UCS 4 universalnij nabir simvoliv angl Universal Character Set v informatici odin zi sposobiv koduvannya simvoliv Yunikodu yakij vikoristovuye dlya koduvannya bud yakogo simvolu rivno 32 biti Inshi koduvannya UTF 8 i UTF 16 vikoristovuyut dlya podannya simvoliv zminnu kilkist bajtiv Simvol UTF 32 ye pryamim podannyam jogo en Golovna perevaga UTF 32 pered koduvannyam zminnoyi dovzhini polyagaye v tomu sho simvoli Yunikodu indeksuyutsya bezposeredno Otrimannya n yi kodovoyi poziciyi ye operaciyeyu sho zajmaye odnakovij chas I navpaki kodi zi zminnoyu dovzhinoyu vimagayut poslidovnogo dostupu do n yi kodovoyi poziciyi Ce robit zaminu simvoliv u ryadkah UTF 32 prostoyu indeksom dlya cogo ye cile chislo yak zazvichaj robitsya dlya ryadkiv ASCII Golovnij nedolik UTF 32 ce neefektivne vikoristannya pam yati oskilki dlya zberigannya simvolu vikoristovuyetsya chotiri bajti Simvoli sho lezhat poza nulovoyu bazovoyu ploshinoyu kodovogo prostoru ridko zastosovuyutsya v bilshosti tekstiv Tomu podvoyennya porivnyano z UTF 16 zajmanogo ryadkami v UTF 32 obsyagu ne vipravdane Hocha vikoristannya nezminnogo chisla bajtiv na simvol zruchne ale ne nastilki yak zdayetsya Operaciya obrizannya ryadkiv realizuyetsya legshe porivnyano z UTF 8 ta UTF 16 Ale ce ne robit shvidshim znahodzhennya konkretnogo zmishennya v ryadku oskilki zmishennya mozhe obchislyuvatisya i dlya koduvan fiksovanogo rozmiru Ce ne polegshuye obchislennya vidimoyi shirini ryadka za vinyatkom obmezhenoyi kilkosti vipadkiv tomu sho navit simvol fiksovanoyi shirini mozhe otrimuvatisya kombinuvannyam zvichajnogo simvolu z modifikuvalnim yakij ne maye shirini Napriklad literu j mozhna otrimati z literi i ta diakritichnogo znaka gachok nad literoyu Poyednannya takih znakiv oznachaye sho tekstovi redaktori ne mozhut rozglyadati 32 rozryadnij kod yak odinicyu redaguvannya Redaktori yaki obmezhuyutsya robotoyu z movami z pismom zliva napravo ta skladenimi simvolami angl precomposed character mozhut vikoristovuvati simvoli fiksovanogo rozmiru Ale taki redaktori navryad chi pidtrimayut simvoli sho lezhat poza nulovoyu bazovoyu ploshinoyu kodovogo prostoru i navryad chi zmozhut pracyuvati odnakovo dobre iz simvolami UTF 16 IstoriyaStandart ISO 10646 viznachaye 31 bitovu formu koduvannya nazvanu UCS 4 v yakij kozhen zakodovanij simvol podano 32 rozryadnim znachennyam kodu kodovogo prostoru chisel vid 0 do 7FFFFFFF Oskilki naspravdi vikoristovuyetsya lishe 17 ploshin to kodi vsih simvoliv mayut znachennya vid 0 do 0x10FFFF UTF 32 ce pidmnozhina UCS 4 yaka vikoristovuye lishe cej diapazon Oskilki dokument JTC1 SC2 WG2 vstanovlyuye sho vsi majbutni priznachennya simvoliv budut obmezheni nulovoyu bazovoyu ploshinoyu kodovogo prostoru abo pershimi dodatkovimi 14 ploshinami to UTF 32 zmozhe podati vsi simvoli Yunikodu Vidpovidno UCS 4 i UTF 32 nini identichni za vinyatkom togo sho standart UTF 32 maye dodatkovu semantiku Yunikodu VikoristannyaUTF 32 zastosovuyetsya perevazhno ne v ryadkah simvoliv a u vnutrishnih API de dani ye yedinoyu kodovoyu poziciyeyu abo glifom Napriklad pri promalovuvanni tekstu na ostannomu kroci buduyetsya spisok struktur kozhna z yakih vklyuchaye poziciyi x i u atributi i yedinij simvol UTF 32 sho identifikuye glif dlya promalovuvannya Chasto v 11 bitah sho ne vikoristovuyutsya kozhnogo 32 bitovogo simvolu zberigayut storonnyu informaciyu UTF 32 vikoristovuyut dlya zberigannya ryadkiv u Unix todi koli tip wchar t viznacheno yak 32 bitovij Programi na Python versiyi 3 2 vklyuchno mozhna bulo vidkompilyuvati dlya vikoristannya UTF 32 zamist UTF 16 Vid versiyi 3 3 pidtrimku UTF 16 vidaleno i ryadki zberigayutsya v UTF 32 ale pochatkovi nuli v razi yih nevikoristannya optimizuyutsya U Windows de tip wchar t maye rozmir 16 bit ryadki UTF 32 majzhe ne vikoristovuyutsya Nevikoristannya UTF 32 v HTML5Standart HTML5 govorit sho avtori ne povinni vikoristovuvati UTF 32 oskilki algoritmi viznachennya koduvannya opisani v danij specifikaciyi ne vidriznyayut jogo vid UTF 16 PosilannyaPovnij opis standartu Unicode 12 bereznya 2014 u Wayback Machine angl