25900 авторів і 91 редактор відповіли на 98952 питання,
розмістивши 129771 посилання на 81900 сайтів, приєднуйтесь!

Реклама партнерів:

Що таке Унікод?

РедагуватиУ обранеДрук

Юнікод, або Унікод (Англ. Unicode) - Стандарт кодування символів, що дозволяє представити знаки практично всіх письмових мов.

Стандарт запропонований в 1991 році некомерційною організацією «Консорціум Юнікоду» (англ. Unicode Consortium), Яка об'єднує найбільші IT-корпорації. Застосування цього стандарту дозволяє закодувати дуже велике число символів з різних писемностей: у документах Unicode можуть сусідити китайські ієрогліфи, математичні символи, букви грецького алфавіту, латиниці і кирилиці, при цьому стають непотрібними кодові сторінки.

Стандарт складається з двох основних розділів: універсальний набір символів (UCS, Universal Character Set) І сімейство кодувань (UTF, Unicode Transformation Format). Універсальний набір символів задає однозначну відповідність символів кодам - елементам кодового простору, що представляє невід'ємні цілі числа. Сімейство кодувань визначає машинне представлення послідовності кодів UCS.

Коди в стандарті Unicode розділені на кілька областей. Область з кодами від U + 0000 до U + 007F містить символи набору ASCII з відповідними кодами. Далі розташовані області знаків різних писемностей, знаки пунктуації та технічні символи. Частина кодів зарезервована для використання в майбутньому. Під символи кирилиці виділені коди від U + 0400 до U + 052F

Передумови створення і розвиток Юникода

До кінця 1980-х років стандартом стали 8-бітові символи, при цьому існувало безліч різних 8-бітних кодувань і постійно з'являлися все нові. Це пояснювалося як постійним розширенням кола підтримуваних мов, так і прагненням створити кодування, частково сумісну з якої-небудь іншої (характерний приклад - поява альтернативної кодування для російської мови, обумовлене експлуатацією західних програм, створених для кодування CP437). У результаті з'явилася необхідність вирішення декількох завдань:

  • Проблема «крокозябри» (показу документів в неправильному кодуванні): її можна було вирішити або послідовним впровадженням методів вказівки використовуваного кодування, або впровадженням єдиної для всіх кодування.
  • Проблема обмеженості набору символів: її можна було вирішити або перемиканням шрифтів всередині документа, або впровадженням «широкої» кодування. Перемикання шрифтів здавна практикувалося в текстових процесорах, причому часто використовувалися шрифти з нестандартною кодуванням, т. Зв. «dingbat fonts»- У підсумку при спробі перенести документ в іншу систему всі нестандартні символи перетворювалося на крокозябри.
  • Проблема перетворення одного кодування в іншу: її можна було вирішити або складанням таблиць перекодування для кожної пари кодувань, або використанням проміжного перетворення в третю кодування, що включає всі символи всіх кодувань.
  • Проблема дублювання шрифтів: традиційно для кожного кодування робився свій шрифт, навіть якщо ці кодування частково (або повністю) збігалися по набору символів: цю проблему можна було вирішити, роблячи «великі» шрифти, з яких потім вибираються потрібні для даного кодування символи - однак це вимагає створення єдиного реєстру символів, щоб визначати, чому що відповідає.
  • Було визнано за необхідне створення єдиної «широкої» кодування. Кодування зі змінною довжиною символу, що широко використовуються в Східній Азії, були визнані занадто складними у використанні, тому було вирішено використовувати символи фіксованої ширини. Використання 32-бітних символів здавалося занадто марнотратним, тому було вирішено використовувати 16-бітові.

    Таким чином, перша версія Юникода представляла собою кодування з фіксованим розміром символу в 16 біт, тобто загальне число кодів було 216 (65 536). Звідси походить практика позначення символів чотирма шестнадцатерічнимі цифрами (наприклад, U + 0410). При цьому в Юникоде планувалося кодувати не всі існуючі символи, а тільки ті, які необхідні в повсякденному побуті. Рідко використовувані символи повинні були розміщуватися в «області символів для приватного використання» (Private Use Area), Яка спочатку займала коди U + D800 ... U + F8FF. Щоб використовувати Юнікод також і в якості проміжної ланки при перетворенні різних кодувань один в одного, до нього включили всі символи, представлені у всіх більш-менш відомих кодуваннях.

    Надалі, проте, було прийнято рішення кодувати всі символи і у зв'язку з цим значно розширити кодову область. Одночасно з цим, коди символів стали розглядатися не як 16-бітові значення, а як абстрактні числа, які в комп'ютері можуть представлятися безліччю різних способів.

    Оскільки в ряді комп'ютерних систем (наприклад, Windows NT) Вже були реалізовані 16-бітові символи, було вирішено все найбільш важливе кодувати тільки в межах перших 65 536 позицій (так звана англ. Basic Multilingual Plane, BMP). Інший простір використовується для «Додаткових символів» (англ. Supplementary Characters): Систем письма вимерлих мов або дуже рідко використовуваних китайських ієрогліфів, математичних і музичних символів.

    Для сумісності зі старими 16-бітними системами була винайдена система UTF-16, де перші 65 536 позицій відображаються безпосередньо як 16-бітові числа, а решта представляються у вигляді «сурогатних пар» (перший елемент пари з області U + D800 ... U + DBFF , другий елемент пари з області U + DC00 ... DFFF). Для сурогатних пар була використана частина кодового простору, раніше відведеного для «символів для приватного використання».

    Оскільки в UTF-16 можна відобразити тільки 220+216 (1114112) символів, то це і було обрано в якості остаточної величини кодового простору Юникода.

    Хоча кодова область Юникода була розширена за межі 216 вже у версії 2.0, перші символи в «верхній» області були розміщені тільки у версії 4.0.

    Версії Юникода

    У міру зміни і поповнення таблиці символів системи Юникода і виходу нових версій цієї системи, - а ця робота ведеться постійно, оскільки спочатку система Юнікод включала тільки Plane 0 - двухбайтном коди, - виходять і нові документи ISO. Система Юнікод існує в цілому в наступних версіях:

    • 1.1 (відповідає стандарту ISO / IEC 10646-1: 1993),
    • 2.0, 2.1 (той же стандарт ISO / IEC 10646-1: 1993 плюс доповнення: «Amendments»З 1-го по 7-е і«Technical Corrigenda»1 і 2),
    • 3.0 (стандарт ISO / IEC 10646-1: 2000).
    • 3.2 (стандарт 2002)
    • 4.0 (стандарт 2003)
    • 4.01 (стандарт 2004)
    • 4.1 (стандарт 2005)
    • 5.0 (стандарт 2006)

    Кодова простір

    Хоча форми запису cp1251 і UTF-32 дозволяють кодувати до 231 (2 147 483 648) кодових позицій, було прийнято рішення використовувати лише 220+216 (1114112) для сумісності з UTF-16. Втім, навіть і цього більш ніж достатньо - сьогодні (у версії 5.0) використовується трохи більше 99 000 кодових позицій.

    Кодова простір розбито на 17 площин по 216 (65536) символів. Нульова площину називається базової, в ній розташовані символи найбільш уживаних письменностей. Перша площина використовується, в основному, для історичних письменностей. Площині 16 і 17 виділені для приватного споживання.

    Для позначення символів Unicode використовується запис виду «U + xxxx»(Для кодів 0 ... FFFF) або«U + xxxxx»(Для кодів 10000 ... FFFFF) або«U + xxxxxx»(Для кодів 100000 ... 10FFFF), де xxx - шістнадцятиричні цифри. Наприклад, символ «я» (U + 044F) Має код 044F16 = 110310.

    Система кодування

    Універсальна система кодування (Юнікод) являє собою набір графічних символів і спосіб їх кодування для комп'ютерної обробки текстових даних.

    Графічні символи - це символи, що мають видиме зображення. Графічним символам протиставляються керуючі символи і символи форматування.

    Графічні символи включають в себе наступні групи:

    • літери, що містяться хоча б в одному з обслуговуваних алфавітів;
    • цифри;
    • знаки пунктуації;
    • спеціальні знаки (математичні, технічні, ідеограми та ін.);
    • роздільники.

    Юнікод - це система для лінійного представлення тексту. Символи, що мають додаткові над- або підрядкові елементи, можуть бути представлені у вигляді побудованої за певними правилами послідовності кодів (складовою варіант, composite character) Або у вигляді єдиного символу (монолітний варіант, precomposed character).

    Модифікуючі символи

    Графічні символи в Юникоде підрозділяються на протяжні і непротяжних (бесшірінние). Непротяжних символи при відображенні не займають місця в рядку. До них належать, зокрема, знаки наголосу й інші діакритичні знаки. Як протяжні, так і непротяжних символи мають власні коди. Протяжні символи інакше називаються базовими (base characters), А непротяжних - модифікуючими (Combining characters) - Причому останні не можуть зустрічатися самостійно. Наприклад, символ «aacute-» може бути представлений як послідовність базового символу «a» (U + 0061) і модифицирующего символу «?» (U + 0301) або як монолітний символ «aacute-» (U + 00C1).

    Особливий тип модифікують символів - селектори варіанти накреслення (variation selectors). Вони діють тільки на ті символи, для яких такі варіанти визначені. У версії 5.0 варіанти накреслення визначені для ряду математичних символів, для символів традиційного монгольського алфавіту і для символів листи Phags-Pa.

    Форми нормалізації

    Оскільки одні й ті ж символи можна представити різними кодами, що іноді ускладнює обробку, існують процеси нормалізації, призначені для приведення тексту до певного стандартному виду.

    У стандарті Юникода визначені 4 форми нормалізації тексту:

    • Форма нормалізації D (NFD) - канонічна декомпозиція. В процесі приведення тексту в цю форму всі складові символи рекурсивно замінюються на кілька складових, відповідно до таблиць декомпозиції.
    • Форма нормалізації C (NFC) - канонічна декомпозиція з подальшою канонічної композицією. Спочатку текст наводиться до форми D, після чого виконується канонічна композиція - текст обробляється від початку до кінця і виконуються наступні правила:
    • Символ S є початковим, якщо він має нульовий клас модифікації в базі символів Юнікоду.
    • У будь-якій послідовності символів, що стартує з початкового символу S символ C блокується від S якщо і тільки якщо між S і C є який-небудь символ B, який або є початковим, або має однаковий або більший клас модифікації, ніж C. Це правило поширюється тільки на рядки минулі канонічну декомпозицію.
    • Первинним композитом вважається символ, у якого є канонічна декомпозиція в базі символів Юнікоду (або канонічна декомпозиція для хангиля і він не входить в список виключень.
    • Символ X може бути первинно суміщений з символом Y якщо і тільки якщо існує первинний композит Z, канонічно еквівалентний послідовності <X, Y>.
    • Якщо черговий символ C не блокується останнім зустрінутим початковим базовим символом L, і він може бути успішно первинно суміщений з ним, то L замінюється на композит L-C, а C видаляється.
  • Форма нормалізації KD (NFKD) - Сумісна декомпозиція. При приведенні в цю форму всі складові символи замінюються використовуючи як канонічні карти декомпозиції Юникода, так і сумісні картки декомпозиції, після чого результат ставиться в канонічному порядку.
  • Форма нормалізації KC (NFKC) - Сумісна декомпозиція з подальшою канонічної композицією.
  • Терміни «композиція» та «декомпозиція» розуміють під собою відповідно з'єднання або розкладання символів на складові частини.

    Приклади

    Оригінальний текстNFDNFCNFKDNFKC
    Francais (Fran xe7ais)Franc U0327aisFran xe7aisFranc u0327aisFran xe7ais
    А, Е, Й ( u0410, u0401, u0419) U0410, u0415 u0308 u0418 u0306 U0410, u0401, u0419 U0410, u0415 u0308 u0418 u0306 U0410, u0401, u0419
    ? ( U304c) U304b u3099 U304c U304b u3099 U304c
    Henry IVHenry IVHenry IVHenry IVHenry IV
    Henry ? (Henry U2163)Henry U2163Henry U2163Henry IVHenry IV

    Двонаправлене лист

    Стандарт Юнікод підтримує писемності мов як з напрямком написання зліва направо (left-to-right, LTR), Так і з написанням справа наліво (right-to-left, RTL) - Наприклад, арабське і єврейське лист. В обох випадках символи зберігаються в «природному» порядку- їх відображення з урахуванням потрібного напрямку письма забезпечується додатком.

    Крім того, Юнікод підтримує комбіновані тексти, що поєднують фрагменти з різним напрямком письма. Дана можливість називається двунаправленность (bidirectional text, BiDi). Деякі спрощені обробники тексту (наприклад, в стільникових телефонах) можуть підтримувати Юнікод, але не мати підтримки двобічної. Усі символи Юнікоду поділені на кілька категорій: пишущиеся зліва направо, пишущиеся справа наліво, і пишущиеся в будь-якому напрямку. Символи останньої категорії (в основному це знаки пунктуації) при відображенні приймають напрямок оточуючого їх тексту.

    Представлені символи

    Юнікод включає практично всі сучасні писемності, у тому числі:

    арабську, вірменську, бенгальську, бірманську, грецьку, грузинську, деванагарі, іврит, кирилицю, коптську, кхмерскую, латинську, тамільська, хангиль, хань (Китай, Японія, Корея), черокі, ефіопську, японську (катакана, хирагана, кандзі) та інші.

    З академічної метою додані багато історичних писемності, в тому числі: руни, давньогрецька, єгипетські ієрогліфи, клинопис, писемність майя, етруська алфавіт.

    У Юникоде представлений широкий набір математичних і музичних символів, а також піктограм.

    ISO / IEC 10646

    Консорціум Юнікоду працює в тісному зв'язку з робочою групою ISO / IEC / JTC1 / SC2 / WG2, яка займається розробкою міжнародного стандарту 10646 (ISO / IEC 10646). Між стандартом Юникода і ISO / IEC 10646 встановлена синхронізація, хоча кожен стандарт використовує свою термінологію і систему документації.

    Співпраця Консорціуму Юникода з Міжнародною організацією зі стандартизації (англ. International Organization for Standardization, ISO) почалося в 1991 році. У 1993 році ISO випустила стандарт DIS 10646.1. Для синхронізації з ним, Консорціум затвердив стандарт Юникода версії 1.1, в який були внесені додаткові символи з DIS 10646.1. В результаті, значення закодованих символів в Unicode 1.1 і DIS 10646.1 повністю збіглися.

    Надалі співпраця двох організацій продовжилося. У 2000 році стандарт Unicode 3.0 був синхронізований з ISO / IEC 10646-1: 2000. Майбутня третя версія ISO / IEC 10646 буде синхронізована з Unicode 4.0. Можливо, ці специфікації навіть будуть опубліковані як єдиний стандарт.



    Аналогічно форматам UTF-16 і UTF-32 в стандарті Юникода, стандарт ISO / IEC 10646 також має дві основні форми кодування символів: UCS-2 (2 байти на символ, аналогічно UTF-16) і UCS-4 (4 байти на символ, аналогічно UTF-32). UCS значить універсальний многооктетний (Мультибайтних) кодований набір символів (Англ. Universal Multiple-Octet Coded Character Set). UCS-2 можна вважати підмножиною UTF-16 (UTF-16 без сурогатних пар), а UCS-4 є синонімом для UTF-32.

    Способи подання

    Юнікод має кілька форм представлення (англ. Unicode Transformation Format, UTF): cp1251, UTF-16 (UTF-16BE, UTF-16LE) і UTF-32 (UTF-32BE, UTF-32LE). Була розроблена також форма подання UTF-7 для передачі по семібітним каналах, але через несумісність з ASCII вона не набула поширення і не включена в стандарт. 1 квітня 2005 р було запропоновано дві жартівливі форми подання: UTF-9 і UTF-18 (RFC 4042).

    В Microsoft Windows NT і заснованих на ній системах Windows 2000 і Windows XP в основному використовується форма UTF-16LE. В UNIX-подібних операційних системах GNU / Linux, BSD і Mac OS X прийнята форма UTF-8 для файлів і UTF-32 або UTF-8 для обробки символів в оперативній пам'яті.

    UTF-8

    UTF-8 - це подання Юникода, що забезпечує найкращу сумісність зі старими системами, які використовували 8-бітові символи. Текст, що складається тільки з символів з номером менше 128, при записі в cp1251 перетворюється на звичайний текст ASCII. І навпаки, в тексті UTF-8 будь-який байт із значенням менше 128 зображує символ ASCII з тим же кодом. Решта символів Юнікоду зображуються послідовностями довжиною від 2 до 6 байтів (на ділі, тільки до 4 байт, оскільки використання кодів більше 221 не планується), в яких перший байт завжди має вид 11xxxxxx, а решта - 10xxxxxx.

    Формат UTF-8 був винайдений 2 вересня 1992 Кеном Томпсоном і Робом Пайком і реалізований в Plan 9 [1]. Зараз стандарт UTF-8 офіційно закріплений в документах RFC 3629 і ISO / IEC 10646 Annex D.

    Символи UTF-8 виходять з Unicode наступним чином:

    Unicode UTF-8 0x00000000 - 0x0000007F: 0xxxxxxx 0x00000080 - 0x000007FF: 110xxxxx 10xxxxxx 0x00000800 - 0x0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx 0x00010000 - 0x001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

    (Теоретично можливі, але не включені в стандарт також :) 0x00200000 - 0x03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 0x04000000 - 0x7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

    Зверніть увагу на те, що хоча UTF-8 дозволяє вказати один і той же символ кількома способами, тільки найбільш короткий з них правильний. Решта форми повинні відхилятися з міркувань безпеки.

    Порядок байтів

    У потоці даних UTF-16 старший байт може записуватися або перед молодшим (UTF-16 Big Endian), Або після молодшого (UTF-16 Little Endian). Іноді кодування Юникода Big Endian (UTF-16BE) Називають Юнікодом із зворотним порядком байтів. Аналогічно існує два варіанти четирёхбайтной кодування - UTF-32BE і UTF-32LE.

    Для визначення формату представлення Юнікоду в текстовому файлі використовується прийом, за яким на початку тексту записується символ U + FEFF (нерозривний пробіл з нульовою шириною), також іменований міткою порядку байтів (Англ. Byte Order Mark, BOM). Цей спосіб дозволяє розрізняти UTF-16LE і UTF-16BE, оскільки символу U + FFFE не існує. Також він іноді застосовується для позначення формату cp1251, хоча до цього формату і застосовується поняття порядку байтів. Файли, наступні цією угодою, починаються з таких послідовностей байтів:

    cp1251 EF BB BF UTF-16BE FE FF UTF-16LE FF FE UTF-32BE 00 00 FE FF UTF-32LE FF FE 00 00

    На жаль, цей спосіб не дозволяє надійно розрізняти UTF-16LE і UTF-32LE, оскільки символ U + 0000 допускається Юникоде (хоча реальні тексти рідко починаються з нього).

    Реалізації

    Більшість сучасних операційних систем в тій чи іншій мірі забезпечують підтримку Юнікоду.

    В операційних системах сімейства Windows NT для внутрішнього представлення імен файлів і інших системних рядків використовується двухбайтовая кодування UTF-16LE. Системні виклики, які беруть строкові параметри, існують в однобайтном і двухбайтном варіантах. Детальніше див. У статті Юнікод в операційних системах Microsoft.

    UNIX-образні операційні системи, в тому числі, GNU / Linux, BSD, Mac OS X, використовують для представлення Юнікоду кодування cp1251. Більшість програм можуть працювати з cp1251 як з традиційними однобайтное кодуваннями, не звертаючи уваги на те, що символ представляється як кілька послідовних байт. Для роботи з окремими символами рядка зазвичай перекодовуються в UCS-4, так що кожному символу відповідає машинне слово.

    Однією з перших успішних комерційних реалізацій Юникода стала середовище програмування Java. У ній принципово відмовилися від 8-бітного представлення символів на користь 16-бітного. Зараз більшість мов програмування підтримують рядки Юникода, хоча їх подання може відрізнятися в залежності від реалізації.

    Методи введення

    Оскільки жодна розкладка клавіатури не може дозволити вводити всі символи Юнікоду одночасно, від операційних систем і прикладних програм потрібна підтримка альтернативних методів введення довільних символів Юнікоду.

    Microsoft Windows

    Починаючи з Windows 2000, службова програма «Таблиця символів» дозволяє вивести на екран таблицю всіх символів від U + 0000 до U + FFFF, підтримуваних конкретним шрифтом. Ця програма дозволяє виділяти окремі символи і копіювати їх в буфер обміну. Таблиця символів, аналогічна за функціональністю цій програмі, включена і в деякі прикладні програми, наприклад, Microsoft Word.

    Більш універсальний спосіб введення символу, код якого відомий - затиснути Alt, натиснути клавішу «плюс» в додатковому блоці клавіатури, і потім набрати шістнадцятковий код необхідного символу. Наприклад, натискання Alt + Plus + f1 вставить букву «ntilde-». Цей спосіб, однак, працює не у всіх елементах управління, що дозволяють вводити текст.

    У деяких додатках, наприклад, WordPad, Word і Opera 7.5, працює ще один спосіб введення символів по шістнадцятиричним коду: потрібно набрати цей код, і натиснути Alt + X. Код буде замінений на відповідний символ. Працює і зворотне перетворення: якщо виділити символ і натиснути Alt + X, то цей символ буде замінений на його шістнадцятковий код.

    Macintosh

    В Mac OS 8.5 і пізніших версіях підтримується метод введення, званий «Unicode Hex Input». При затиснутою клавіші Option потрібно набрати чотиризначний шістнадцятковий код необхідного символу. Цей метод дозволяє вводити символи з кодами, великими U + FFFF, використовуючи пари суррогатов- такі пари операційною системою будуть автоматично замінені на одиночні символи. Цей метод введення перед використанням потрібно активізувати у відповідному розділі системних налаштувань, і потім вибрати як поточний метод введення в меню клавіатури.

    Починаючи з Mac OS X 10.2, існує також додаток «Character Palette», Що дозволяє вибирати символи з таблиці, в якій можна виділяти символи певного блоку або символи, підтримувані конкретним шрифтом.

    GNU / Linux

    В GNOME також є утиліта «Таблиця символів», що дозволяє відображати символи певного блоку або системи письма, і надає можливість пошуку за назвою або опису символу. Коли код потрібного символу відомий, його можна ввести у відповідності зі стандартом ISO 14755: при затиснутих клавішах Ctrl і Shift ввести шістнадцятковий код (в GNOME версії 2.15 або пізнішої введення коду потрібно випередити натисканням клавіші «U»). Введений шістнадцятковий код може мати до 32 біт в довжину, дозволяючи вводити будь-які символи Юнікоду без використання сурогатних пар.

    Всі додатки X Window, включаючи GNOME і KDE, підтримують введення за допомогою клавіші Compose. Для клавіатур, на яких немає окремої клавіші Compose, для цієї мети можна призначити будь-яку клавішу - наприклад, CapsLock.

    Консоль GNU / Linux також допускає введення символу Юнікоду за його кодом - для цього десятковий код символу потрібно ввести цифрами розширеного блоку клавіатури при затиснутою клавіші Alt. Можна вводити символи і за їх шістнадцятиричним коду: для цього потрібно затиснути клавішу AltGr, і для введення цифр AF використовувати клавіші розширеного блоку клавіатури від NumLock до Enter (По годинниковій стрілці). Підтримується також і введення відповідно до ISO 14755. Для того, щоб перераховані способи могли працювати, потрібно включити Юнікодние режим консолі викликом unicode_start (1) і вибрати відповідний шрифт викликом setfont (8).

    Mozilla Firefox для Linux підтримує введення символів по ISO 14755.

    Проблеми Юникода

    Як будь-яка винайдена людиною система, Юнікод не вільний від недоліків (хоча, в основному, вони пов'язані з можливостями обробників тексту, а не безпосередньо з принципом кодування).

    • Деякі системи письма все ще не представлені належним чином в Юникоде. Наприклад, відсутні деякі букви традиційної писемності церковнослов'янської мови. Ця писемність містить багато додаткових графічних елементів (такі, як титла і виносні літери). Зображення «довгих» надрядкових символів, що тягнуться над декількома буквами, поки не реалізовано.
    • Тексти на китайською, корейською та японською мовою мають традиційне написання зверху вниз, починаючи з правого верхнього кута. Перемикання горизонтального і вертикального написання для цих мов не передбачено в Юникоде - це повинно здійснюватися засобами мов розмітки або внутрішніми механізмами текстових процесорів.
    • Первісна версія Юникода припускала наявність великої кількості готових символів, в подальшому було віддано перевагу поєднанню букв з діакритичними модифікуючими знаками (Combining diacritics). Наприклад, російські букви Е (U + 0401) і Й (U + 0419) існують у вигляді монолітних символів, хоча можуть бути представлені і набором базового символу з подальшим діакритичним знаком, тобто в складовою формі (Decomposed): Е +? (U + 0415 U + 0308), І +? (U + 0418 U + 0306). У той же час безліч символів з мов з алфавітами на основі кирилиці не мають монолітних форм.
    • Юнікод передбачає можливість різних накреслень одного і того ж символу в залежності від мови. Так, китайські ієрогліфи можуть мати різні накреслення в китайською, японською (кандзі) та корейською (ханчча), Але при цьому в Юникоде позначатися одним і тим же символом (так звана CJK-уніфікація), хоча спрощені і повні ієрогліфи все ж мають різні коди. Часто виникають накладки, коли, наприклад, японський текст виглядає «по-китайськи». Аналогічно, російська та сербська мови використовують різний накреслення курсивних букв п і т (у сербському вони виглядають як і і ш). Тому потрібно стежити, щоб текст завжди був правильно позначений як відноситься до того чи іншої мови.
    • Файли з текстом в Юникоде займають більше пам'яті, так як один символ кодується не одним байтом, як у різних національних кодуваннях, а послідовністю байтів (виняток становить cp1251 для мов, алфавіт яких укладається в ASCII). Однак зі збільшенням потужності комп'ютерних систем і здешевленням пам'яті і дискового простору ця проблема стає все менш істотною.
    • Хоча підтримка Юнікоду реалізована в найбільш поширених операційних системах, не все прикладне програмне забезпечення підтримує коректну роботу з ним. Зокрема, не завжди обробляються мітки BOM і погано підтримуються діакритичні символи. Проблема є тимчасовою і є наслідок порівняльної новизни стандартів Юникода (у порівнянні з однобайтового національними кодуваннями).
    «Юнікод» або «Унікод»?

    «Unicode»- Одночасно і ім'я власне (або частина імені, наприклад Unicode Consortium), І ім'я загальне, що відбувається з англійської мови.

    На перший погляд краще використовувати написання «Унікод». У російській мові вже є морфеми «уни-» (слова з латинським елементом «uni-»Традиційно переводилися і писалися через« уни- »: універсальний, уніполярний, уніфікація, уніформа) і« код ». Навпаки, торгові марки, запозичені з англійської мови, звичайно передаються за допомогою практичної транскрипції, в якій деетімологізірованное поєднання букв «uni-»Записується у вигляді« юні- »(« Юнілівер »,« Юнекс »і т. П.), Тобто точно так само, як у випадку з побуквенно скороченнями, начебто UNICEF «United Nations International Children's Emergency Fund»- ЮНІСЕФ.

    В якості перекладу імені загального, слово «Унікод» можна було б розглядати як складноскорочені - наприклад, від виразу «універсальна кодування». Однак це призвело б до появи двох слів зі схожим звучанням і коливанню значень. Тому при локалізації операційної системи Windows 95 компанія «Майкрософт» ввела написання російського слова «Юнікод» за формою імені власного.

    Написання «Юнікод» вже твердо увійшло в російськомовні тексти. Згідно з «Яндексу», частота використання цього слова в 3,5 рази перевищує «Унікод». У Вікіпедії використовується більш поширений варіант.

    На сайті консорціуму є спеціальна сторінка, де розглядаються проблеми передачі слова «Unicode»В різних мовах і системах письма. Для російської кирилиці вказано варіант «Юнікод».

    Джерело: Вікіпедія

    Посилання:

    Реклама партнерів:

    РедагуватиУ обранеДрук


    «Що таке Унікод?»

    В інших пошукових системах:

    GoogleЯndexRamblerВікіпедія

    » » Що таке Унікод?