Юнико́д (англ.Unicode) — стандарт кодирования символов, включающий в себя знаки почти всех письменных языков мира. В настоящее время стандарт является преобладающим в Интернете.
Логотип Консорциума Юникода
Стандарт предложен в 1991 году некоммерческой организацией «Консорциум Юникода» (англ.Unicode Consortium, Unicode Inc.). Применение этого стандарта позволяет закодировать очень большое число символов из разных систем письменности: в документах, закодированных по стандарту Юникод, могут соседствовать китайские иероглифы, математические символы, буквы греческого алфавита, латиницы и кириллицы, символы музыкальной нотной нотации, при этом становится ненужным переключение кодовых страниц.
Стандарт состоит из двух основных частей: универсального набора символов (англ.Universal character set, UCS) и семейства кодировок (англ.Unicode transformation format, UTF). Универсальный набор символов перечисляет допустимые по стандарту Юникод символы и присваивает каждому символу код в виде неотрицательного целого числа, записываемого обычно в шестнадцатеричной форме с префиксом U+, например, U+040F. Семейство кодировок определяет способы преобразования кодов символов для передачи в потоке или в файле.
Коды в стандарте Юникод разделены на несколько областей. Область с кодами от U+0000 до U+007F содержит символы набора ASCII, и коды этих символов совпадают с их кодами в ASCII. Далее расположены области символов других систем письменности, знаки пунктуации и технические символы. Часть кодов зарезервирована для использования в будущем. Под символы кириллицы выделены области знаков с кодами от U+0400 до U+052F, от U+2DE0 до U+2DFF, от U+A640 до U+A69F (см. Кириллица в Юникоде).
Предпосылки создания и развитие Юникода
Unicode — это уникальный код для любого символа, независимо от платформы, независимо от программы, независимо от языка.Консорциум Юникода
К концу 1980-х годов стандартом стали 8-битные кодировки, их существовало уже большое множество, и постоянно появлялись новые. Это объяснялось как расширением круга поддерживаемых языков, так и стремлением создавать кодировки, частично совместимые между собой (характерный пример — появление альтернативной кодировки для русского языка, обусловленное эксплуатацией западных программ, созданных для кодировки CP437). В результате появилось несколько проблем:
проблема неправильной раскодировки;
проблема ограниченности набора символов;
проблема преобразования одной кодировки в другую;
проблема дублирования шрифтов.
Проблема неправильной раскодировки вызывала появление в документе символов иностранных языков, не предполагавшихся в документе, или появление не предполагавшихся псевдографических символов, прозванных русскоязычными пользователями «кракозябрами». Проблема во многом была вызвана отсутствием стандартизированной формы указания кодировки для файла или потока. Проблему можно было решить либо последовательным внедрением стандарта указания кодировки, либо внедрением общей для всех языков кодировки.
Проблема ограниченности набора символов. Проблему можно было решить либо переключением шрифтов внутри документа, либо внедрением «широкой» кодировки. Переключение шрифтов издавна практиковалось в текстовых процессорах, причём часто использовались шрифты с нестандартной кодировкой, т. н. «dingbat fonts». В итоге при попытке переноса документа в другую систему все нестандартные символы превращались в «кракозябры».
Проблема преобразования одной кодировки в другую. Проблему можно было решить либо составлением таблиц перекодировки для каждой пары кодировок, либо использованием промежуточного преобразования в третью кодировку, включающую все символы всех кодировок.
Проблема дублирования шрифтов. Для каждой кодировки создавался свой шрифт, даже если наборы символов в кодировках совпадали частично или полностью. Проблему можно было решить путём создания «больших» шрифтов, из которых впоследствии выбирались бы нужные для данной кодировки символы. Однако это требовало создания единого реестра символов, чтобы определять, чему что соответствует.
Была признана необходимость создания единой «широкой» кодировки. Кодировки с переменной длиной символа, широко использующиеся в Восточной Азии, были признаны слишком сложными в использовании, поэтому было решено использовать символы фиксированной ширины. Использование 32-битных символов казалось слишком расточительным, поэтому было решено использовать 16-битные.
Первая версия Юникода представляла собой кодировку с фиксированным размером символа в 16 бит, то есть общее число кодов было 216 (65 536). С тех пор символы стали обозначать четырьмя шестнадцатеричными цифрами (например, U+04F0). При этом в Юникоде планировалось кодировать не все существующие символы, а только те, которые необходимы в повседневном обиходе. Редко используемые символы должны были размещаться в «области пользовательских символов» (private use area), которая первоначально занимала коды U+D800…U+F8FF. Чтобы использовать Юникод также и в качестве промежуточного звена при преобразовании разных кодировок друг в друга, в него включили все символы, представленные во всех наиболее известных кодировках.
В дальнейшем, однако, было принято решение кодировать все символы и в связи с этим значительно расширить кодовую область. Одновременно с этим коды символов стали рассматриваться не как 16-битные значения, а как абстрактные числа, которые в компьютере могут представляться множеством разных способов (см. способы представления).
Поскольку в ряде компьютерных систем (например, Windows NT) фиксированные 16-битные символы уже использовались в качестве кодировки по умолчанию, было решено все наиболее важные знаки кодировать только в пределах первых 65 536 позиций (так называемая англ.Basic Multilingual Plane, BMP). Остальное пространство используется для «дополнительных символов» (англ.supplementary characters): систем письма вымерших языков или очень редко используемых китайских иероглифов, математических и музыкальных символов.
Для совместимости со старыми 16-битными системами была изобретена система UTF-16, где первые 65 536 позиций, за исключением позиций из интервала U+D800…U+DFFF, отображаются непосредственно как 16-битные числа, а остальные представляются в виде «суррогатных пар» (первый элемент пары из области U+D800…U+DBFF, второй элемент пары из области U+DC00…U+DFFF). Для суррогатных пар была использована часть кодового пространства (2048 позиций), отведённого «для частного использования».
Поскольку в UTF-16 можно отобразить только 220+216−2048 (1 112 064) символов, то это число и было выбрано в качестве окончательной величины кодового пространства Юникода (диапазон кодов: 0x000000-0x10FFFF).
Хотя кодовая область Юникода была расширена за пределы 216 уже в версии 2.0, первые символы в «верхней» области были размещены только в версии 3.1.
Юникод является самой распространённой кодировкой в веб-секторе с 2008 года. На конец 2024 года доля веб-сайтов, использующих Юникод, составила около 98,3%.
Версии Юникода
Работа по доработке стандарта продолжается. Новые версии выпускаются по мере изменения и пополнения таблиц символов. Параллельно выпускаются новые документы ISO/IEC 10646.
Первый стандарт выпущен в 1991 году, последней на данный момент версией является 16.0.0 (10 сентября2024). Версии стандарта 1.0—5.0 публиковались как книги и имеют ISBN.
Номер версии стандарта составлен из трёх цифр (например, 3.1.1). Третью цифру меняют при внесении в стандарт небольших изменений, не добавляющих новых символов (исключение — версия 1.0.1, в которой добавлены унифицированные идеограммы китайского, японского и корейского письма).
База данных символов Юникода (Unicode Character Database) доступна для всех версий на официальном сайте как в простом текстовом, так и в XML-формате. Файлы распространяются под BSD-подобной лицензией.
Добавлены 20 902 унифицированные идеограммы китайского, японского и корейского письма
1.1
Июнь 1993
ISO/IEC 10646-1:1993
23
34 233
Добавлено 4306 слогов хангыля, дополнивших уже имеющиеся в кодировке 2350 символов. Удалены символы тибетского письма
2.0
Июль 1996
ISBN 0-201-48345-9
ISO/IEC 10646-1:1993 и Amendments 5, 6, 7
24
38 950
Удалены добавленные ранее слоги хангыля, и добавлены 11 172 новых слога хангыля с новыми кодами. Возвращены удалённые ранее символы тибетского письма; символы получили новые коды и были размещены в разных таблицах. Введён механизм суррогатных (англ.surrogate) символов. Выделено место для плоскостей (англ.planes) 15 и 16
2.1
Май 1998
ISO/IEC 10646-1:1993, Amendments 5, 6, 7, два символа из Amendment 18
Добавлены дезеретское письмо, готское письмо и [англ.], а также символы западной и византийской музыки, 42 711 унифицированных идеограмм китайского, японского и корейского письма. Выделено место для плоскостей 1, 2 и 14
3.2
Март 2002
ISO/IEC 10646-1:2000 и Amendment 1
ISO/IEC 10646-2:2001
44
95 221
Добавлены письмо бухид, [англ.], байбайин и письмо тагбанва
4.0
Апрель 2003
ISBN 0-321-18578-1
ISO/IEC 10646:2003
51
96 447
Добавлены кипрское письмо, письмо лимбу, линейное письмо Б, сомалийское письмо, алфавит шоу, письмо лы и угаритское письмо, а также символы гексаграмм
Добавлены карийское письмо, чамская письменность, письмо кая-ли, письмо лепча, ликийское письмо, лидийское письмо, письмо ол-чики, реджангское письмо, письмо саураштра, сунданское письмо, древнетюркское письмо и письмо ваи. Добавлены символы фестского диска, символы костей для маджонга и домино, заглавная буква эсцет (ẞ), а также буквы латиницы, использовавшиеся в средневековых рукописях для [англ.]. Новыми символами дополнен набор символов бирманского письма
Добавлено пять символов для форматирования двунаправленного текста
7.0
16 июня 2014
ISO/IEC 10646:2012, Amendments 1, 2 и символ рубля
123
113 021
Добавлены письмо басса, агванское письмо, стенография Дюплойе, эльбасанское письмо, письмо грантха, [англ.], [англ.], линейное письмо А, [англ.], манихейское письмо, письмо кикакуи, письмо моди, [англ.], набатейское письмо, северноаравийское письмо, древнепермское письмо, письмо пахау, пальмирское письмо, [англ.], [англ.], сиддхаматрика, письмо тирхута, варанг-кшити и [англ.], а также символ российского рубля и символ азербайджанского маната
Добавлены письмо ахом, анатолийские иероглифы, , , венгерские руны, SignWriting, 5776 Унифицированные идеограммы ККЯ — расширение E, строчные буквы письма чероки, буквы латиницы для немецкой диалектологии, 41 эмодзи, а также пять символов изменения цвета кожи для эмотиконов. Добавлен символ лари (валюты Грузии)
9.0
21 июня 2016
ISO/IEC 10646:2014, Amendments 1, 2, адлам, нева, японские символы для ТВ, 74 эмодзи и символов
135
128 237
Добавлены , , , , письмо осейдж, тангутское письмо, а также 72 эмодзи и японские символы для телевидения
10.0
20 июня 2017
ISO/IEC 10646:2017, 56 эмодзи, 285 символов хэнтайганы, 3 символа квадратного письма Дзанабадзара
139
136 755
Добавлены квадратное письмо Дзанабадзара, письмо соёмбо, , письмо нюй-шу, письмо хэнтайгана, 7494 Унифицированные идеограммы ККЯ — расширение F, а также 56 эмодзи и символ биткойна
11.0
Июнь 2018
ISO/IEC 10646:2017
146
137 439
Добавлены догра, грузинское письмо мтаврули, гунджалское гонди, ханифи, индийские цифры сийяк, макасарское письмо, медефайдрин, (древне-)согдийское письмо, цифры майя, 5 идеограмм ККЯ, символы сянци и половин звёздочек для оценки, а также 145 эмодзи, четыре символа изменения причёски для эмотиконов и символ копилефта
12.0
Март 2019
ISO/IEC 10646:2017, Amendments 1, 2, а также 62 дополнительных символов
150
137 993
Добавлены элимайское письмо, [англ.], хмонг, ванчо, дополнения для письма Полларда, малая кана для старых японских текстов, исторические дроби и символы тамильского письма, буквы лаосского письма для пали, буквы латиницы для транслитерации угаритского, управляющие символы форматирования египетских иероглифов, а также 61 эмодзи
12.1
Май 2019
150
137 994
Экстренный выпуск: добавлен квадратный символ эпохи рэйва
13.0
Март 2020
154
143 924
Добавлены , письмо , малое киданьское письмо, езидское письмо, 4969 идеограмм ККЯ (включая 4939 ), а также 55 эмодзи, символы Creative Commons и символы для унаследованной вычислительной техники. Выделено место для плоскости 3
14.0
Сентябрь 2021
159
144 762
Добавлены письмо , кипро-минойское письмо, виткутьское письмо, староуйгурское письмо, , дополнительные буквы латиницы (блоки Расширенная латиница — F, Расширенная латиница — G) для использования в расширениях для МФА, добавление арабского письма для использования в языках Африки, Ирана, Пакистана, Малайзии, Индонезии, Явы и Боснии, а также дополнения для использования в Коране, другие дополнения для поддержки языков Северной Америки, Филиппин, Индии и Монголии, добавление символа сома, нотописи знаменного пения и 37 эмодзи.
15.0
Сентябрь 2022
161
149 251
Добавлены для языка мундари (≈1950), кави (старояванский), кактовикские цифры, символы кириллицы для записи транскрипции, латинские буквы для записи языка малаялам, 3 лигатуры из турецкого Корана, 1 египетский иероглиф, символы для передачи затёртых египетских иероглифов, символы из джайнизма, звезда бахаизма, символы пяти транснептуновых объектов и 31 эмодзи (включая цвета кожи).
15.1
12 сентября 2023
161
149 878
Добавлены 897 иероглифов китайских имён, которые китайцы хотели расположить на плоскости 0A; 622 из них опознаны как новые. Также 5 символов структуры китайских иероглифов, 10 разных [англ.]-последовательностей эмодзи и 18 последовательностей, изображающих людей, которые смотрят вправо (исключая цвета кожи).
16.0
10 сентября 2024
168
155 063
Добавлены почти 4000 египетских иероглифов, более 600 символов со старых компьютеров, новые письменности тулу, албанский Тодри, [англ.] (Сенегал), сунвар Джентича, гурунг, , и ол-онал. 6 латинских символов для записи африканских и индейских языков, кириллическая буква ТЬ для ханты, арабские буквы из пегона и ливийского Корана, два комплекта бирманских цифр, две черты ККЯ, нукта из языка кави, египтологические стрелки. И всего 8 эмодзи, включая автоматически добавившийся остров Сарк (CQ).
17.0
9 сентября 2025
173
159 910 (?)
Добавлены более 4300 ККЯ-иероглифов. Письменности берия, сидетский, толонг-сики, , . Реформирован . Шарада для современного кашмирского. Арабские лигатуры титулов, отброшенные в U14 за нехваткой источников. С новым словарём тангутского (2021) записали все его наработки. 27 меток произношения. Алфил и фарзин из прото-шахмат. Химические стрелки. Множество старых символов для астероидов, когда те в XIX веке начали открывать. Символы арабской геомантии. 8 односимвольных эмодзи. Последние многорасовые эмодзи — борцы и девушки Плейбоя. Решили, что будет танцевать бесполый танцор — современный балет. 10 символов со старых компьютеров разунифицированы с эмодзи. По ускоренной программе добавлен саудовский риял.
Примечания
Включая единственный код (шрифт Брайля), единственную стенографическую систему (стенография Дюплойе), а также катакану, хирагану, жестовое письмо Саттон, исключаяхэнтайгану (считается хираганой), два альтернативных грузинских алфавита (считаются грузинским), а также другие нетекстовые: четыре вида нот, черчение, математические знаки. Унифицированные системы (китайские и японские иероглифы; арабский, урду/шахмукхи, пегон и волофал…) считаются за одну; греческий и коптский до версии 4.1, когда их разунифицировали,— тоже. При дальнейшем обновлении данных: файл PropertyValueAliases.txt, раздел «sc», количество строк в этом разделе минус три (последние три — технические).
Включая печатаемые (англ.graphic), управляющие (англ.control) и форматирующие (англ.format) символы; не включаяличные символы (англ.private-use), несимвольные позиции (англ.noncharacters), половины суррогатных пар (англ.surrogate code points), неофициально занятые (U+1D548 ажурное ℚ при официальном U+211A — используется, чтобы гарантированно набрать слово одним шрифтом; U+11C09 начальное слоговое LL — в санскрите буква есть, но не найдена в источниках именно письмом бхайкшуки). Пресс-релизы Юникода дают цифру на 65 меньше — не учитывают управляющие (00…1F, 7F…9F). Стоит признать, что категория этих символов поначалу несколько раз менялась. При дальнейшем обновлении данных: количество заявленных символов + 65.
Древний тулу и близкую к нему систему письменности тигалари: от современного тулу отказались как из-за неустоявшейся системы (унифицируемой с малаяламом), так и из-за разного подхода к древнему и современному письму.
Не путать с брахмийской абугидой , появившейся позже.
Кодовое пространство
Хотя форма записи UTF-8 позволяет кодировать до 221 (2 097 152) кодовых позиций, было принято решение использовать лишь 1 112 064 для совместимости с UTF-16. Впрочем, этого в данный момент достаточно — в версии 15.1 используется всего 149 878 кодовых позиций.
Кодовое пространство разбито на 17 плоскостей (англ.planes) по 216 (65 536) символов. Нулевая плоскость (plane 0) называется базовой (basic) и содержит символы наиболее употребительных письменностей. Остальные плоскости — дополнительные (supplementary). Первая плоскость (plane 1) используется в основном для исторических письменностей, вторая (plane 2) — для редко используемых иероглифов китайского письма (ККЯ), третья (plane 3) зарезервирована для архаичных китайских иероглифов. Плоскость 14 отведена для символов, используемых по особому назначению. Плоскости 15 и 16 выделены для частного употребления.
Для обозначения символов Unicode используется запись вида «U+xxxx» (для кодов 0…FFFF), или «U+xxxxx» (для кодов 10000…FFFFF), или «U+xxxxxx» (для кодов 100000…10FFFF), где xxx — шестнадцатеричные цифры. Например, символ «я» (U+044F) имеет код 044F16 = 110310.
Дополнительные области для частного использования (Supplementary Private Use Area-A/B, SPUA-A/B)
U+F0000…U+10FFFF
Система кодирования
Универсальная система кодирования (Юникод) представляет собой набор графических символов и способ их кодирования для компьютерной обработки текстовых данных.
Графические или печатаемые символы — это символы, имеющие видимое изображение. Графическим символам противопоставляются управляющие и форматирующие символы.
Графические символы включают в себя следующие группы:
буквы, содержащиеся хотя бы в одном из обслуживаемых алфавитов;
цифры;
знаки пунктуации;
специальные знаки (математические, технические, идеограммы и пр.);
разделители;
диакритические метки, включая невидимые.
Юникод — это система для линейного представления текста. Символы, имеющие дополнительные над- или подстрочные элементы, могут быть представлены в виде построенной по определённым правилам последовательности кодов (составной вариант, composite character) или в виде единого символа (монолитный вариант, precomposed character). С 2014 года считается, что все буквы крупных письменностей в Юникод внесены, и если символ доступен в составном варианте, дублировать его в монолитном виде не нужно.
Общие принципы
Гарантии стабильности
Как только символ появился в кодировке, он не сдвинется и не исчезнет. Таким образом, каждый новый Юникод будет надмножеством старого. Если символ окажется плохим, его запрещают. Если же потребуется изменить порядок символов, это делается не переменой позиций, а национальным порядком сортировки. Есть и другие, более тонкие гарантии стабильности — например, не будут меняться таблицы нормализации.
Динамическая компоновка
Такой высокой цели, как универсальность, Юникод добивается путём динамической сборки печатного текста. Иногда для удобства делают и монолитные символы, но в целом A + ¨ = Ä.
Логический порядок
Символы в строке записываются приблизительно в порядке прочтения, в том числе в двунаправленном письме: арабский текст кодируется справа налево, а оказавшееся в нём европейское число — слева направо. Метка (умляут, огласовка…) идёт после основного символа. Есть исключения с визуальным порядком (например, лаосский).
Преобразуемость
Если в важной кодировке две формы одного символа закодированы разными позициями, это делает и Юникод. Преобразование не обязательно 1:1 — один символ другой кодировки может преобразоваться в несколько символов Юникода, и наоборот.
Юникод кодирует простой текст без оформления. Считается, что простой текст должен хранить достаточно данных, чтобы читаемо отобразить его, и больше ничего.
Семантика
Свойства символов задаются формально, с помощью формата CSV. Существует также версия в XML, неполная и на Юникод 16 её существование было под вопросом — но кто-то взялся поддерживать эту базу.
Символы, не глифы
Символ — единица смысла. Глиф — изображение, содержащееся в шрифте и выводящееся на экран/печать.
Так, в шрифте арабского стиля настали́к будут тысячи глифов. Но в кодировке около 200 символов стандартного арабского, передающих смысл. И наоборот, иногда (см. Унификация) разные символы могут иметь одинаковый глиф.
Нарушение этого принципа или историческое (σ≠ς, существовало ещё до принципа динамической компоновки), или вызвано сложностями шрифтов (Ţ≠Ț, последнее используется в молдавском и румынском).
Универсальность
Юникод разработан для людей разных языков и профессий: работающих в бизнесе, образовании, религии и науке, для современных и исторических текстов.
За пределами Юникода лежат:
письменности, про которые мало что известно, чтобы надёжно закодировать символы;
письменности, чьи пользователи не пришли к де-факто стандарту;
нетекстовые (например, пиктографические) письменности.
Унификация
Юникод старается не дублировать символы. Так, английская буква «вай», французская «игрек» и немецкая «ипсилон» — одна и та же кодовая позиция Y. Мало того, сходные иероглифы китайского и японского — одна кодовая позиция.
Существует несколько важных исключений. Сходные буквы разных письменностей кодируются разными кодовыми позициями. Часто позиции дублируются для упрощения обработки — так, в Юникоде три буквы Ð с разными строчными. Математический штрих и такой же штрих для индикации мягкости звуков — разные символы, второй считается буквой-модификатором. Преобразуемость может идти вразрез с унификацией — строчная греческая сигма имеет две разных формы, и они — разные кодовые позиции.
Эффективность
Юникод устроен так, чтобы эффективные реализации были осуществимы. Коды символов — последовательные числа от 0 до 10FFFF16, это позволяет иметь дело с таблицами поиска. UTF-8 и UTF-16 — самосинхронизирующиеся коды, а важнейшие символы доступны без раскодировки. Юникод избегает форматирующих символов, которые меняют внутреннее состояние. И многое другое.
Политика консорциума
Консорциум не создаёт нового, а констатирует сложившийся порядок вещей. Например, картинки «эмодзи» были добавлены потому, что японские операторы мобильной связи широко их использовали. Для этого добавление символа проходит через сложный процесс. И, например, символ российского рубля прошёл его за три месяца, как только получил официальный статус, причём до этого он много лет де-факто использовался и его отказывались включить в Юникод.
Товарные знаки кодируют только в порядке исключения. Так, в Юникоде нет флага Windows или яблока Apple.
Эмодзине вводятся в Юникод, если:
Понятие можно получить комбинацией имеющихся символов: «мыть руки» = «вода» + «руки». Белку часто изображают картинкой бурундука.
Понятие слишком специфическое: если на картинке японского блюда суши рисуют, например, суши с креветкой, то не стоит запрашивать другие виды суши.
Понятие может вызвать волну новых добавлений.
Флаги и надписи. Консорциум перестал включать такие эмодзи. Что является страной, а что нет, определяется стандартом ISO 3166-1, и флаги переносятся оттуда автоматически;
Картинка преходящая (например, вирус COVID-19). Некоторые производители рисуют вирус на месте эмодзи «микроорганизм».
Требуется закодировать конкретное изображение (например, интернет-мем).
Вариации направления движения: с Юникода 15.1 их понемногу вносят.
Специфичные для письменностей принципы
Письменности греческой группы (латиница и др.): формы, которые можно получить комбинированием, кодируются монолитно в качестве большого исключения.
Письменности брахмийской группы (деванагари и др.): спецсимвол «невидимая вирама» разунифицирован, чтобы автор шрифта прочитал стандарт и понял, что он делает. Палка кодируется как исключение, по умолчанию берётся данда из деванагари.
Египетские иероглифы поделены на три группы: базовые (>4400 штук), расширенные (встречаются только в современных публикациях, >500) и совместимые (символы из списка Гардинера, которые сегодня бы не закодировали, <40).
Эмодзи-человечки инклюзивны: закодированы бесполые, мужские и женские версии, в пяти цветах кожи. Некоторые предметы меняются под давлением инклюзивности: лейкопластырь перекрашен из телесного в белый. Чтобы избежать комбинаторного взрыва, убраны с «клавиатур» эмодзи семей. Эмодзи-колобки не инклюзивны.
Комбинирующие метки
Представление символа «Й» (U+0419) в виде базового символа «И» (U+0418) и комбинирующей метки « ̆» (U+0306).
Символы в Юникоде подразделяются на базовые (англ.base characters) и комбинирующие (англ.combining marks). Метки обычно следуют за базовым символом и изменяют его отображение определённым образом. К комбинирующим символам, например, относятся диакритические знаки, знаки ударения. Например, русскую букву «Й» в Юникоде можно записать в виде базового символа «И» (U+0418) и комбинирующего символа « ̆» (U+0306), отображаемого над базовым.
Комбинирующие символы помечены в таблицах символов Юникода особыми категориями:
Nonspacing Mark — непротяжённая метка; таковые обычно отображаются над или под базовым символом и крайне редко раздвигают кегельную площадку символа (например, ï);
Enclosing Mark — охватывающая метка; эти метки охватывают символ со всех сторон и в идеале должны расширять его кегельную площадку;
Spacing Mark — протяжённая метка; представляет собой глиф перед или после основного символа, обладающий собственной кегельной площадкой.
Особый тип комбинирующих символов — селекторы варианта начертания (англ.variation selectors). Они действуют только на те базовые символы, для которых такие варианты определены. К примеру, в версии Юникода 5.0 варианты начертания определены для ряда математических символов, для символов традиционного монгольского алфавита и для символов монгольского квадратного письма.
Алгоритмы нормализации
Из-за наличия в Юникоде комбинирующих символов одни и те же знаки письменности можно представить различными кодами. Так, например, букву «Й» в примере выше можно записать как отдельным символом, так и сочетанием базового и комбинированного. Из-за этого сравнение строк байт за байтом становится невозможным. Алгоритмы нормализации (англ.normalization forms) решают эту проблему, выполняя приведение символов к определённому стандартному виду. Приведение осуществляется путём замены символов на эквивалентные с использованием таблиц и правил. «Декомпозицией» называется замена (разложение) одного символа на несколько составляющих символов, а «композицией», наоборот, — замена (соединение) нескольких составляющих символов на один символ.
В стандарте Юникода определены четыре алгоритма нормализации текста: NFD, NFC, NFKD и NFKC.
Каноническая декомпозиция (NFD)
NFD, англ.normalization form D («D» от англ.decomposition), форма нормализации D — каноническая декомпозиция — алгоритм, согласно которому выполняется рекурсивное разложение составных символов (англ.precomposed characters) на последовательность из одного или нескольких простых символов в соответствии с таблицами декомпозиции. Рекурсивное потому, что в процессе разложения составной символ может быть разложен на несколько других, некоторые из которых тоже являются составными, и к которым применяется дальнейшее разложение.
Примеры:
Ω
U+2126
→
Ω
U+03A9
Å
U+00C5
→
A
U+0041
̊
U+030A
ṩ
U+1E69
→
s
U+0073
̣
U+0323
̇
U+0307
ḍ̇
U+1E0B
U+0323
→
d
U+0064
̣
U+0323
̇
U+0307
q̣̇
U+0071
U+0307
U+0323
→
q
U+0071
̣
U+0323
̇
U+0307
Каноническая композиция (NFC)
NFC, англ.normalization form C («C» от англ.composition), форма нормализации C — алгоритм, согласно которому последовательно выполняются каноническая декомпозиция и каноническая композиция. Сначала каноническая декомпозиция (алгоритм NFD) приводит текст к форме D. Затем каноническая композиция — операция, обратная NFD, обрабатывает текст от начала к концу с учётом следующих правил:
символ S считается начальным, если имеет нулевой класс комбинируемости (англ.combining class of zero) согласно таблице символов Юникода;
в любой последовательности символов, начинающейся с символа S, символ C блокируется от S, только если между S и C есть какой-либо символ B, который либо является начальным, либо имеет одинаковый или больший класс комбинируемости, чем C. Это правило распространяется только на строки, прошедшие каноническую декомпозицию;
символ считается первичным композитом, если имеет каноническую декомпозицию в таблице символов Юникода (или каноническую декомпозицию для хангыля и он не входит в список исключений);
символ X может быть первично совмещён с символом Y, если и только если существует первичный композит Z, канонически эквивалентный последовательности <X, Y>;
если очередной символ C не блокируется последним встреченным начальным базовым символом L и он может быть успешно первично совмещён с ним, то L заменяется на композит L-C, а C удаляется.
Пример:
o
U+006F
̂
U+0302
→
ô
U+00F4
Совместимая декомпозиция (NFKD)
NFKD, англ.normalization form KD, форма нормализации KD — совместимая декомпозиция — алгоритм, согласно которому последовательно выполняются каноническая декомпозиция и замены символов текста по таблицам совместимой декомпозиции. Таблицы совместимой декомпозиции предусматривают замену на почти эквивалентные символы:
похожих на буквы (ℍ и ℌ);
обведённых кружками (①);
с изменёнными размерами (カ и カ);
повёрнутых (︷ и {);
степеней (⁹ и ₉);
дробей (¼);
других (™).
Примеры:
ℍ
U+210D
→
H
U+0048
①
U+2460
→
1
U+0031
カ
U+FF76
→
カ
U+30AB
︷
U+FE37
→
{
U+007B
⁹
U+2079
→
9
U+0039
¼
U+00BC
→
1
⁄
4
U+0031
U+2044
U+0034
™
U+2122
→
T
M
U+0054
U+004D
Совместимая композиция (NFKC)
NFKC, англ.normalization form KC, форма нормализации KC — алгоритм, согласно которому последовательно выполняются совместимая декомпозиция (алгоритм NFKD) и каноническая композиция (алгоритм NFC).
Примеры
Исходный текст
NFD
NFC
NFKD
NFKC
fi
U+FB01
fi
U+FB01
fi
U+FB01
f
i
U+0066
U+0069
f
i
U+0066
U+0069
2
⁵
U+0032
U+2075
2
⁵
U+0032
U+2075
2
⁵
U+0032
U+2075
2
5
U+0032
U+0035
2
5
U+0032
U+0035
ẛ̣
U+1E9B
U+0323
ſ
̣
̇
U+017F
U+0323
U+0307
ẛ
̣
U+1E9B
U+0323
s
̣
̇
U+0073
U+0323
U+0307
ṩ
U+1E69
й
U+0439
и
̆
U+0438
U+0306
й
U+0439
и
̆
U+0438
U+0306
й
U+0439
ё
U+0451
е
̈
U+0435
U+0308
ё
U+0451
е
̈
U+0435
U+0308
ё
U+0451
А
U+0410
А
U+0410
А
U+0410
А
U+0410
А
U+0410
が
U+304C
か
゙
U+304B
U+3099
が
U+304C
か
゙
U+304B
U+3099
が
U+304C
Ⅷ
U+2167
Ⅷ
U+2167
Ⅷ
U+2167
V
I
I
I
U+0056
U+0049
U+0049
U+0049
V
I
I
I
U+0056
U+0049
U+0049
U+0049
ç
U+00E7
c
̧
U+0063
U+0327
ç
U+00E7
c
̧
U+0063
U+0327
ç
U+00E7
Двунаправленное письмо
Стандарт Юникод поддерживает письменности языков как с направлением написания слева направо (англ.left-to-right, LTR), так и с написанием справа налево (англ.right-to-left, RTL) — например, арабское и еврейское письмо. В обоих случаях символы хранятся в «естественном» порядке; их отображение с учётом нужного направления письма обеспечивается приложением.
Кроме того, Юникод поддерживает комбинированные тексты, сочетающие фрагменты с разным направлением письма. Данная возможность называется двунаправленность (англ.bidirectional text, BiDi). Некоторые упрощённые обработчики текста (например, в сотовых телефонах) могут поддерживать Юникод, но не иметь поддержки двунаправленности. Все символы Юникода поделены на несколько категорий: пишущиеся слева направо, пишущиеся справа налево, и пишущиеся в любом направлении. Символы последней категории (в основном это знаки пунктуации) при отображении принимают направление окружающего их текста.
Представленные символы
Схема основной многоязычной плоскости Юникода
Основная статья: Плоскость (Юникод)
Юникод включает практически все современные письменности, в том числе:
В Юникоде представлен широкий набор математических и музыкальных символов, а также пиктограмм.
Государственные флаги не включены в Юникод напрямую. Для их кодирования используются пары из 26 буквенных символов, предназначенных для представления двухбуквенных кодов стран по стандарту ISO 3166-1 alpha-2. Эти буквы закодированы в диапазоне от U+1F1E6🇦regional indicator symbol letter a (HTML 🇦) до U+1F1FF🇿regional indicator symbol letter z (HTML 🇿).
В Юникод принципиально не включаются логотипы компаний и продуктов, хотя они и встречаются в шрифтах (например, логотип Apple в кодировке MacRoman (0xF0) или логотип Windows в шрифте Wingdings (0xFF)). В юникодовских шрифтах логотипы должны размещаться только в области пользовательских символов. Существуют свободные бесплатные шрифты, включающие в себя логотипы компаний, программных продуктов и другие товарные знаки (например, [англ.]).
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 coded character set). UCS-2 можно считать подмножеством UTF-16 (UTF-16 без суррогатных пар), а UCS-4 является синонимом для UTF-32.
Различия стандартов Юникод и ISO/IEC 10646:
небольшие различия в терминологии;
ISO/IEC 10646 не включает разделы, необходимые для полноценной реализации поддержки Юникода:
нет данных о двоичном кодировании символов;
нет описания алгоритмов сравнения (англ.collation) и отрисовки (англ.rendering) символов;
нет перечня свойств символов (например, нет перечня свойств, необходимых для реализации поддержки двунаправленного (англ.bi-directional) письма).
Способы представления
Юникод имеет несколько форм представления (англ.Unicode transformation format, UTF): UTF-8, UTF-16 (UTF-16BE, UTF-16LE) и UTF-32 (UTF-32BE, UTF-32LE). Была разработана также форма представления UTF-7 для передачи по семибитным каналам, но из-за несовместимости с ASCII она не получила распространения и не включена в стандарт. 1 апреля 2005 года были предложены две шуточные формы представления: UTF-9 и UTF-18 (RFC 4042).
В MicrosoftWindows NT и основанных на ней системах Windows 2000 и Windows XP в основном используется форма UTF-16LE. В UNIX-подобных операционных системахGNU/Linux, BSD и Mac OS X принята форма UTF-8 для файлов и UTF-32 или UTF-8 для обработки символов в оперативной памяти.
Punycode — другая форма кодирования последовательностей Unicode-символов в так называемые ACE-последовательности, которые состоят только из алфавитно-цифровых символов, как это разрешено в доменных именах.
UTF-8
Основная статья: UTF-8
UTF-8 — представление Юникода, обеспечивающее наибольшую компактность и обратную совместимость с 7-битной системой ASCII; текст, состоящий только из символов с номерами меньше 128, при записи в UTF-8 превращается в обычный текст ASCII и может быть отображён любой программой, работающей с ASCII; и наоборот, текст, закодированный 7-битной ASCII может быть отображён программой, предназначенной для работы с UTF-8. Остальные символы Юникода изображаются последовательностями длиной от 2 до 4 байт, в которых первый байт всегда имеет маску 11xxxxxx, а остальные — 10xxxxxx. В UTF-8 не используются суррогатные пары.
Формат UTF-8 был изобретён 2 сентября1992 годаКеном Томпсоном и Робом Пайком и реализован в ОС Plan 9. Сейчас стандарт UTF-8 официально закреплён в документах RFC 3629 и ISO/IEC 10646 Annex D.
UTF-16 и UTF-32
Основные статьи: UTF-16 и UTF-32
UTF-16 — кодировка, позволяющая записывать символы Юникода в диапазонах U+0000…U+D7FF и U+E000…U+10FFFF (общим количеством 1 112 064). При этом каждый символ записывается одним или двумя словами (суррогатная пара). Кодировка UTF-16 описана в приложении Q к международному стандарту ISO/IEC 10646, а также ей посвящён документ IETF RFC 2781 под названием «UTF-16, an encoding of ISO 10646».
UTF-32 — способ представления Юникода, при котором каждый символ занимает ровно 4 байта. Главное преимущество UTF-32 перед кодировками переменной длины заключается в том, что символы Юникод в ней непосредственно индексируемы, поэтому найти символ по номеру его позиции в файле можно чрезвычайно быстро, и получение любого символа n-й позиции при этом является операцией, занимающей всегда одинаковое время. Это также делает замену символов в строках UTF-32 очень простой. Напротив, кодировки с переменной длиной требуют последовательного доступа к символу n-й позиции, что может быть очень затратной по времени операцией. Главный недостаток UTF-32 — это неэффективное использование пространства, так как для хранения любого символа используется четыре байта. Символы, лежащие за пределами нулевой (базовой) плоскости кодового пространства, редко используются в большинстве текстов. Поэтому удвоение, в сравнении с UTF-16, занимаемого строками в UTF-32 пространства, зачастую не оправдано.
Порядок байтов
Основная статья: Порядок байтов
В потоке данных UTF-16 младший байт может записываться либо перед старшим (англ.UTF-16 little-endian, UTF-16LE), либо после старшего (англ.UTF-16 big-endian, UTF-16BE). Аналогично существует два варианта четырёхбайтной кодировки — UTF-32LE и UTF-32BE.
Маркер последовательности байтов
Основная статья: Маркер последовательности байтов
Для указания на использование Юникода, в начале текстового файла или потока может передаваться Маркер последовательности байтов (англ.byte order mark (BOM)) — символ U+FEFF (неразрывный пробел нулевой ширины). По его виду можно легко различить как формат представления Юникода, так и последовательность байтов. Маркер последовательности байтов может принимать следующий вид:
UTF-8
EF BB BF
UTF-16BE
FE FF
UTF-16LE
FF FE
UTF-32BE
00 00 FE FF
UTF-32LE
FF FE 00 00
Юникод и традиционные кодировки
Внедрение Юникода привело к изменению подхода к традиционным 8-битным кодировкам. Если раньше такая кодировка всегда задавалась непосредственно, то теперь она может задаваться таблицей соответствия между данной кодировкой и Юникодом. Фактически почти все 8-битные кодировки теперь можно рассматривать как форму представления некоторого подмножества Юникода. И это намного упростило создание программ, которые должны работать с множеством разных кодировок: теперь, чтобы добавить поддержку ещё одной кодировки, надо всего лишь добавить ещё одну таблицу перекодировки символов в Юникод.
Кроме того, многие форматы данных позволяют вставлять любые символы Юникода, даже если документ записан в старой 8-битной кодировке. Например, в HTML можно использовать коды с амперсандом.
Реализации
Большинство современных операционных систем в той или иной степени обеспечивает поддержку Юникода.
В операционных системах семейства Windows NT для внутреннего представления имён файлов и других системных строк используется двухбайтовая кодировка UTF-16LE. Системные вызовы, принимающие строковые параметры, существуют в однобайтном и двухбайтном вариантах. Подробнее см. в статье Юникод в операционных системах семейства Microsoft Windows.
UNIX-подобные операционные системы, в том числе GNU/Linux, BSD, OS X, используют для представления Юникода кодировку UTF-8. Большинство программ может работать с UTF-8 как с традиционными однобайтными кодировками, не обращая внимания на то, что символ представляется как несколько последовательных байт. Для работы с отдельными символами строки обычно перекодируются в UCS-4, так что каждому символу соответствует машинное слово.
Одной из первых успешных коммерческих реализаций Юникода стала среда программирования Java. В ней принципиально отказались от 8-битного представления символов в пользу 16-битного. Это решение увеличило расход памяти, но позволило вернуть в программирование важную абстракцию: произвольный одиночный символ (тип char). В частности, программист мог работать со строкой, как с простым массивом. Успех не был окончательным, Юникод перерос ограничение в 16 бит и к версии J2SE 5.0 произвольный символ снова стал занимать переменное число единиц памяти — один char или два (см. суррогатная пара).
Крупные, используемые в промышленном программировании языки (Delphi, Си, JavaScript…) содержат тип «юникодная строка UTF-16 или UTF-32». Лишь отдельные из них (PHP) ради производительности на главной задаче (генерации веб-страниц) продолжают использовать 8-битный символ, но способны разбирать UTF-8 на кодовые позиции Юникода.
Методы ввода
Поскольку ни одна раскладка клавиатуры не может позволить вводить все символы Юникода одновременно, от операционных систем и прикладных программ требуется поддержка альтернативных методов ввода произвольных символов Юникода.
Microsoft Windows
Основная статья: Юникод в операционных системах семейства Microsoft Windows
Начиная с Windows 2000, служебная программа «Таблица символов» (charmap.exe) поддерживает символы Юникода и позволяет копировать их в буфер обмена. Реализована поддержка только базовой плоскости (коды символов U+0000…U+FFFF); символы с кодами от U+10000 «Таблица символов» не отображает. Похожая таблица есть в Microsoft Word.
Иногда можно набрать шестнадцатеричный код, нажать Alt+X, и код будет заменён на соответствующий символ, например, в WordPad, Microsoft Word. В редакторах Alt+X выполняет и обратное преобразование. В программах, работающих в среде Windows, чтобы получить символ Unicode, нужно при нажатой клавише Alt набрать десятичное значение кода символа на цифровой клавиатуре: например, комбинации Alt+0171 и Alt+0187 выводят левую и правую кавычки-ёлочки, соответственно, Alt+0151 — длинное тире, Alt+0769 — знак ударения, Alt+0133 — многоточие и пр.
Macintosh
В Mac OS 8.5 и более поздних версиях поддерживается метод ввода, называемый «Unicode Hex Input». При зажатой клавише Option требуется набрать четырёхзначный шестнадцатеричный код требуемого символа. Этот метод позволяет вводить символы с кодами, большими U+FFFD, используя пары суррогатов; такие пары операционной системой будут автоматически заменены на одиночные символы. Этот метод ввода перед использованием нужно активизировать в соответствующем разделе системных настроек и затем выбрать как текущий метод ввода в меню клавиатуры.
Начиная с Mac OS X 10.2, существует также приложение «Character Palette», позволяющее выбирать символы из таблицы, в которой можно выделять символы определённого блока или символы, поддерживаемые конкретным шрифтом.
GNU/Linux
В GNOME также есть утилита «Таблица символов» (ранее gucharmap), позволяющая отображать символы определённого блока или системы письма и предоставляющая возможность поиска по названию или описанию символа. Когда код нужного символа известен, его можно ввести в соответствии со стандартом ISO 14755: при зажатых клавишах Ctrl+⇧ Shift ввести шестнадцатеричный код (начиная с некоторой версии GTK+, ввод кода нужно предварить нажатием клавиши «U»). Вводимый шестнадцатеричный код может иметь до 32 бит в длину, позволяя вводить любые символы Юникода без использования суррогатных пар.
Все приложения X Window, включая GNOME и KDE, поддерживают ввод при помощи клавиши Compose. Для клавиатур, на которых нет отдельной клавиши Compose, для этой цели можно назначить любую клавишу — например, ⇪ Caps Lock.
Консоль GNU/Linux также допускает ввод символа Юникода по его коду — для этого десятичный код символа нужно ввести цифрами расширенного блока клавиатуры при зажатой клавише Alt. Можно вводить символы и по их шестнадцатеричному коду: для этого нужно зажать клавишу AltGr, и для ввода цифр A—F использовать клавиши расширенного блока клавиатуры от NumLock до ↵ Enter (по часовой стрелке). Поддерживается также и ввод в соответствии с ISO 14755. Для того чтобы перечисленные способы могли работать, нужно включить в консоли режим Юникода вызовом unicode_start(1) и выбрать подходящий шрифт вызовом setfont(8).
Mozilla Firefox для Linux поддерживает ввод символов по ISO 14755.
Проблемы Юникода
В Юникоде английское «a» и польское «a» — один и тот же символ. Точно так же одним и тем же символом (но отличающимся от «a» латинского) считаются русское «а» и сербское «а». Такой принцип кодирования не универсален; по-видимому, решения «на все случаи жизни» вообще не может существовать.
Тексты на китайском, корейском и японском языках имеют традиционное написание сверху вниз, начиная с правого верхнего угла. Переключение горизонтального и вертикального написания для этих языков не предусмотрено в Юникоде — это должно осуществляться средствами языков разметки или внутренними механизмами текстовых процессоров.
Наличие или отсутствие в Юникоде разных начертаний одного и того же символа в зависимости от языка. Нужно следить, чтобы текст всегда был правильно помечен как относящийся к тому или другому языку.
Так, китайские иероглифы могут иметь разные начертания в китайском, японском (кандзи) и корейском (ханча), но при этом в Юникоде обозначаются одним и тем же символом (так называемая ККЯ-унификация), хотя упрощённые и полные иероглифы всё же имеют разные коды.
Аналогично, русский и сербский языки используют разное начертание курсивных букв п и т (в сербском они выглядят как п (и̅) и т (ш̅), см. сербский курсив).
Перевод из строчных букв в заглавные тоже зависит от языка. Например: в турецком существуют буквы İi и Iı — таким образом, турецкие правила изменения регистра конфликтуют с английскими, которые предписывают «i» переводить в «I». Подобные проблемы есть и в других языках — например, в канадском диалекте французского языка регистр переводится немного не так, как во Франции.
Даже с арабскими цифрами есть определённые типографские тонкости: цифры бывают «прописными» и «строчными», пропорциональными и моноширинными — для Юникода разницы между ними нет. Подобные нюансы остаются за программным обеспечением.
Некоторые недостатки связаны не с самим Юникодом, а с возможностями обработчиков текста.
Файлы нелатинского текста в Юникоде всегда занимают больше места, так как один символ кодируется не одним байтом, как в различных национальных кодировках, а последовательностью байтов (исключение составляет UTF-8 для языков, алфавит которых укладывается в ASCII, а также наличие в тексте символов двух и более языков, алфавит которых не укладывается в ASCII). Файл шрифта всех символов таблицы Юникод занимает сравнительно много места в памяти и требует бо́льших вычислительных ресурсов, чем шрифт только одного национального языка пользователя. С увеличением мощности компьютерных систем и удешевлением памяти и дискового пространства эта проблема становится всё менее существенной; тем не менее, она остаётся актуальной для портативных устройств, например, для мобильных телефонов.
Хотя поддержка Юникода реализована в наиболее распространённых операционных системах, до сих пор не всё прикладное программное обеспечение поддерживает корректную работу с ним. В частности, не всегда обрабатываются метки порядка байтов (BOM) и плохо поддерживаются диакритические символы. Проблема является временной и есть следствие сравнительной новизны стандартов Юникода (в сравнении с однобайтовыми национальными кодировками).
Производительность всех программ обработки строк (в том числе и сортировок в БД) снижается при использовании Юникода вместо однобайтовых кодировок.
Некоторые редкие системы письма всё ещё не представлены должным образом в Юникоде. Изображение «длинных» надстрочных символов, простирающихся над несколькими буквами, как, например, в церковнославянском языке, пока не реализовано.
Написание слова «Unicode»
«Unicode» — одновременно и имя собственное (или часть имени, например, Unicode Consortium), и имя нарицательное, происходящее из английского языка.
На первый взгляд предпочтительнее использовать написание «Уникод». В русском языке уже есть морфемы «уни-» (слова с латинским элементом «uni-» традиционно переводились и писались через «уни-»: универсальный, униполярный, унификация, униформа) и «код». Напротив, торговые марки, заимствованные из английского языка, обычно передаются посредством практической транскрипции, в которой деэтимологизированное сочетание букв «uni-» записывается в виде «юни-» («Юнилевер», «Юникс» и т. п.), то есть точно так же, как в случае с побуквенными сокращениями, вроде UNICEF «United Nations International Children’s Emergency Fund» — ЮНИСЕФ.
На сайте Консорциума есть специальная страница, где рассматриваются проблемы передачи слова «Unicode» в различных языках и системах письма. Для русской кириллицы указан вариант «Юникод». В MS Windows также используется вариант «Юникод».
Unicode Transcriptions(англ.). Дата обращения: 10 мая 2010. Архивировано из оригинала 8 апреля 2006 года.
The Unicode® Standard: A Technical Introduction (неопр.). Дата обращения: 4 июля 2010. Архивировано из оригинала 10 марта 2010 года.
History of Unicode Release and Publication Dates (неопр.). Дата обращения: 4 июля 2010. Архивировано из оригинала 10 января 2010 года.
The Unicode Consortium (неопр.). Дата обращения: 4 июля 2010. Архивировано из оригинала 27 июня 2010 года.
Foreword (неопр.). Дата обращения: 4 июля 2010. Архивировано из оригинала 27 июня 2010 года.
General Structure (неопр.). Дата обращения: 5 июля 2010. Архивировано из оригинала 27 июня 2010 года.
European Alphabetic Scripts (неопр.). Дата обращения: 4 июля 2010. Архивировано из оригинала 27 июня 2010 года.
Что такое Unicode? (неопр.) Дата обращения: 15 февраля 2006. Архивировано 13 февраля 2006 года.
Unicode 88 (неопр.). Дата обращения: 8 июля 2010. Архивировано из оригинала 6 сентября 2017 года.
Unicode and Microsoft Windows NT(англ.). Microsoft Support. Дата обращения: 12 ноября 2009. Архивировано из оригинала 26 сентября 2009 года.
Moving to Unicode 5.1(англ.). Official Google Blog. Дата обращения: 19 марта 2025.
Usage Survey of Character Encodings broken down by Ranking (неопр.). w3techs.com. Дата обращения: 19 марта 2025.
Unicode® 16.0.0 (неопр.). Дата обращения: 11 сентября 2024. Архивировано 10 сентября 2024 года.
History of Unicode Release and Publication Dates (неопр.). Дата обращения: 3 июля 2010. Архивировано 10 января 2010 года.
Enumerated Versions (неопр.). Дата обращения: 2 июля 2017. Архивировано 25 декабря 2018 года.
About Versions (неопр.). Дата обращения: 2 июля 2017. Архивировано 16 июля 2017 года.
Unicode® Consortium Copyright, Terms of Use, and Licenses (неопр.). Дата обращения: 8 сентября 2017. Архивировано 11 сентября 2017 года.
Unicode® 1.0(англ.). [англ.]. Дата обращения: 8 декабря 2017. Архивировано 13 декабря 2017 года.
Unicode Data 1.0.0(англ.). Дата обращения: 4 декабря 2017. Архивировано 30 июня 2012 года.
Unicode Data 1.0.1(англ.). Дата обращения: 4 декабря 2017. Архивировано 21 марта 2022 года.
Unicode® 1.1(англ.). [англ.]. Дата обращения: 8 декабря 2017. Архивировано 13 декабря 2017 года.
Unicode Data 1995(англ.). Дата обращения: 4 декабря 2017. Архивировано 21 марта 2022 года.
Unicode 2.0.0(англ.). [англ.]. Дата обращения: 8 декабря 2017. Архивировано 8 июля 2017 года.
Unicode Data 2.0.14(англ.). Дата обращения: 4 декабря 2017. Архивировано 21 марта 2022 года.
Unicode 2.1.0(англ.). [англ.]. Дата обращения: 8 декабря 2017. Архивировано 2 января 2015 года.
Unicode Data 2.1.2(англ.). Дата обращения: 4 декабря 2017. Архивировано 21 марта 2022 года.
Unicode 3.0.0(англ.). [англ.]. Дата обращения: 8 декабря 2017. Архивировано 7 июля 2017 года.
Unicode Data 3.0.0(англ.). Дата обращения: 4 декабря 2017. Архивировано 21 марта 2022 года.
Unicode 3.1.0(англ.). [англ.]. Дата обращения: 8 декабря 2017. Архивировано 7 июля 2017 года.
Unicode Data 3.1.0(англ.). Дата обращения: 4 декабря 2017. Архивировано 21 марта 2022 года.
Unicode 3.2.0(англ.). [англ.]. Дата обращения: 8 декабря 2017. Архивировано 14 июля 2017 года.
Unicode Data 3.2.0(англ.). Дата обращения: 4 декабря 2017. Архивировано 21 марта 2022 года.
Unicode 4.0.0(англ.). [англ.]. Дата обращения: 8 декабря 2017. Архивировано 14 июля 2017 года.
Unicode Data 4.0.0(англ.). Дата обращения: 4 декабря 2017. Архивировано 21 марта 2022 года.
Unicode 4.1.0(англ.). [англ.]. Дата обращения: 8 декабря 2017. Архивировано 25 мая 2021 года.
Unicode Data 4.1.0(англ.). Дата обращения: 4 декабря 2017. Архивировано 21 марта 2022 года.
Unicode 5.0.0(англ.). [англ.] (14 июля 2006). Дата обращения: 8 декабря 2017. Архивировано 10 июня 2008 года.
Unicode Data 5.0.0(англ.). Дата обращения: 4 декабря 2017. Архивировано 21 марта 2022 года.
Unicode 5.1.0(англ.). [англ.] (4 апреля 2008). Дата обращения: 8 декабря 2017. Архивировано 10 апреля 2010 года.
Unicode Data 5.1.0(англ.). Дата обращения: 4 декабря 2017. Архивировано 19 апреля 2022 года.
Unicode® 5.2.0(англ.). [англ.] (1 октября 2009). Дата обращения: 8 декабря 2017. Архивировано 8 ноября 2017 года.
Unicode Data 5.2.0(англ.). Дата обращения: 4 декабря 2017. Архивировано 21 марта 2022 года.
Unicode® 6.0.0(англ.). [англ.] (11 октября 2010). Дата обращения: 8 декабря 2017. Архивировано 8 февраля 2013 года.
Unicode Data 6.0.0(англ.). Дата обращения: 4 декабря 2017. Архивировано 21 марта 2022 года.
Unicode® 6.1.0(англ.). [англ.] (31 января 2012). Дата обращения: 8 декабря 2017. Архивировано 15 июля 2017 года.
Unicode Data 6.1.0(англ.). Дата обращения: 4 декабря 2017. Архивировано 26 марта 2022 года.
Unicode® 6.2.0(англ.). [англ.] (26 сентября 2012). Дата обращения: 7 декабря 2017. Архивировано 12 февраля 2019 года.
Unicode Data 6.2.0(англ.). Дата обращения: 4 декабря 2017. Архивировано 26 марта 2022 года.
Unicode® 6.3.0(англ.). [англ.] (30 сентября 2012). Дата обращения: 7 декабря 2017. Архивировано 15 июля 2017 года.
Unicode Data 6.3.0(англ.). Дата обращения: 4 декабря 2017. Архивировано 7 апреля 2022 года.
Unicode® 7.0.0(англ.). [англ.] (16 июня 2014). Дата обращения: 8 декабря 2017. Архивировано 15 апреля 2019 года.
Unicode Data 7.0.0(англ.). Дата обращения: 4 декабря 2017. Архивировано 7 апреля 2022 года.
Unicode® 8.0.0(англ.). [англ.] (17 июня 2015). Дата обращения: 8 декабря 2017. Архивировано 28 июня 2016 года.
Unicode Data 8.0.0(англ.). Дата обращения: 4 декабря 2017. Архивировано 24 марта 2021 года.
Unicode® 9.0.0(англ.). [англ.] (21 июня 2016). Дата обращения: 8 декабря 2017. Архивировано 28 февраля 2020 года.
Unicode Data 9.0.0(англ.). Дата обращения: 6 декабря 2017. Архивировано 7 апреля 2022 года.
Unicode® 10.0.0(англ.). [англ.] (27 июня 2017). Дата обращения: 8 декабря 2017. Архивировано 20 июня 2017 года.
Unicode Data 10.0.0(англ.). Дата обращения: 7 декабря 2017. Архивировано 21 ноября 2021 года.
Unicode Data 11.0.0(англ.). Дата обращения: 12 апреля 2019. Архивировано 8 апреля 2022 года.
The Unicode Blog: Announcing The Unicode® Standard, Version 11.0 (неопр.). Дата обращения: 5 июня 2019. Архивировано 22 июля 2019 года.
Unicode 11.0.0 (неопр.). Дата обращения: 5 июня 2019. Архивировано 30 марта 2021 года.
The Unicode Blog: Announcing The Unicode® Standard, Version 12.0 (неопр.). Дата обращения: 5 июня 2019. Архивировано 3 июня 2019 года.
Unicode 12.0.0 (неопр.). Дата обращения: 5 июня 2019. Архивировано 30 марта 2021 года.
The Unicode Blog: Unicode Version 12.1 released in support of the Reiwa Era (неопр.). Дата обращения: 5 июня 2019. Архивировано 7 мая 2019 года.
Unicode 12.1.0 (неопр.). Дата обращения: 5 июня 2019. Архивировано 8 июня 2019 года.
The Unicode Blog: Announcing The Unicode Standard, Version 13.0 (неопр.). Дата обращения: 15 мая 2020. Архивировано 26 апреля 2022 года.
Unicode 13.0.0 (неопр.). Дата обращения: 15 мая 2020. Архивировано 30 марта 2021 года.
Roadmap to the TIP (Tertiary Ideographic Plane) (неопр.). Дата обращения: 12 октября 2010. Архивировано 29 февраля 2020 года.
Unicode Character Encoding Stability Policy (неопр.). Дата обращения: 2 мая 2014. Архивировано 15 августа 2012 года.
FAQ — Emoji & Dingbats (неопр.). Дата обращения: 2 мая 2014. Архивировано 29 апреля 2014 года.
Guidelines for Submitting Unicode® Emoji Proposals (неопр.). Дата обращения: 10 июня 2021. Архивировано 6 июня 2021 года.
Нормализация Unicode (неопр.). Дата обращения: 4 августа 2014. Архивировано 8 августа 2014 года.
GitHub — FortAwesome/Font-Awesome: The iconic SVG, font, and CSS toolkit (неопр.). Дата обращения: 27 июня 2020. Архивировано 27 июня 2020 года.
Архивированная копия (неопр.). Дата обращения: 27 февраля 2007. Архивировано из оригинала 29 октября 2006 года. (англ.)
Регистр в Unicode — это непросто (неопр.). Дата обращения: 9 апреля 2011. Архивировано 23 апреля 2014 года.
В большинстве шрифтов для ПК реализованы «прописные» (маюскульные) моноширинные цифры.
В некоторых случаях документ (не простой текст) в Юникоде может занимать существенно меньше места, чем документ в однобайтовой кодировке. Например, если некая веб-страница содержит примерно поровну русского и греческого текста, то в однобайтовой кодировке придётся либо русские, либо греческие буквы записывать, используя возможности формата документов, в виде кодов с амперсандом, которые занимают 6—7 байт на символ (при использовании десятичных кодов), то есть в среднем на букву придётся 3,5—4 байта, в то время как UTF-8 занимает только 2 байта на греческую или русскую букву.
Один из файлов шрифтов Arial Unicode имеет размер 24 мегабайта; существует Times New Roman размером 120 мегабайт, он содержит количество символов, близкое к 65536.
Ссылки
Официальный сайт Консорциума Юникода (англ.)
Таблица символов Юникода с названиями, поиск по символам (рус.) (англ.)
Последняя версия стандарта Юникод (англ.)
Связь Юникода версии 5.0.0 и ISO/IEC 10646 (файл PDF) (англ.)
FAQ по UTF-8 и Unicode (англ.)
Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер, Информация о Консорциум Юникода, Что такое Консорциум Юникода? Что означает Консорциум Юникода?
Yuniko d angl Unicode standart kodirovaniya simvolov vklyuchayushij v sebya znaki pochti vseh pismennyh yazykov mira V nastoyashee vremya standart yavlyaetsya preobladayushim v Internete Logotip Konsorciuma Yunikoda Standart predlozhen v 1991 godu nekommercheskoj organizaciej Konsorcium Yunikoda angl Unicode Consortium Unicode Inc Primenenie etogo standarta pozvolyaet zakodirovat ochen bolshoe chislo simvolov iz raznyh sistem pismennosti v dokumentah zakodirovannyh po standartu Yunikod mogut sosedstvovat kitajskie ieroglify matematicheskie simvoly bukvy grecheskogo alfavita latinicy i kirillicy simvoly muzykalnoj notnoj notacii pri etom stanovitsya nenuzhnym pereklyuchenie kodovyh stranic Standart sostoit iz dvuh osnovnyh chastej universalnogo nabora simvolov angl Universal character set UCS i semejstva kodirovok angl Unicode transformation format UTF Universalnyj nabor simvolov perechislyaet dopustimye po standartu Yunikod simvoly i prisvaivaet kazhdomu simvolu kod v vide neotricatelnogo celogo chisla zapisyvaemogo obychno v shestnadcaterichnoj forme s prefiksom U naprimer U 040F Semejstvo kodirovok opredelyaet sposoby preobrazovaniya kodov simvolov dlya peredachi v potoke ili v fajle Kody v standarte Yunikod razdeleny na neskolko oblastej Oblast s kodami ot U 0000 do U 007F soderzhit simvoly nabora ASCII i kody etih simvolov sovpadayut s ih kodami v ASCII Dalee raspolozheny oblasti simvolov drugih sistem pismennosti znaki punktuacii i tehnicheskie simvoly Chast kodov zarezervirovana dlya ispolzovaniya v budushem Pod simvoly kirillicy vydeleny oblasti znakov s kodami ot U 0400 do U 052F ot U 2DE0 do U 2DFF ot U A640 do U A69F sm Kirillica v Yunikode Predposylki sozdaniya i razvitie YunikodaUnicode eto unikalnyj kod dlya lyubogo simvola nezavisimo ot platformy nezavisimo ot programmy nezavisimo ot yazyka Konsorcium Yunikoda K koncu 1980 h godov standartom stali 8 bitnye kodirovki ih sushestvovalo uzhe bolshoe mnozhestvo i postoyanno poyavlyalis novye Eto obyasnyalos kak rasshireniem kruga podderzhivaemyh yazykov tak i stremleniem sozdavat kodirovki chastichno sovmestimye mezhdu soboj harakternyj primer poyavlenie alternativnoj kodirovki dlya russkogo yazyka obuslovlennoe ekspluataciej zapadnyh programm sozdannyh dlya kodirovki CP437 V rezultate poyavilos neskolko problem problema nepravilnoj raskodirovki problema ogranichennosti nabora simvolov problema preobrazovaniya odnoj kodirovki v druguyu problema dublirovaniya shriftov Problema nepravilnoj raskodirovki vyzyvala poyavlenie v dokumente simvolov inostrannyh yazykov ne predpolagavshihsya v dokumente ili poyavlenie ne predpolagavshihsya psevdograficheskih simvolov prozvannyh russkoyazychnymi polzovatelyami krakozyabrami Problema vo mnogom byla vyzvana otsutstviem standartizirovannoj formy ukazaniya kodirovki dlya fajla ili potoka Problemu mozhno bylo reshit libo posledovatelnym vnedreniem standarta ukazaniya kodirovki libo vnedreniem obshej dlya vseh yazykov kodirovki Problema ogranichennosti nabora simvolov Problemu mozhno bylo reshit libo pereklyucheniem shriftov vnutri dokumenta libo vnedreniem shirokoj kodirovki Pereklyuchenie shriftov izdavna praktikovalos v tekstovyh processorah prichyom chasto ispolzovalis shrifty s nestandartnoj kodirovkoj t n dingbat fonts V itoge pri popytke perenosa dokumenta v druguyu sistemu vse nestandartnye simvoly prevrashalis v krakozyabry Problema preobrazovaniya odnoj kodirovki v druguyu Problemu mozhno bylo reshit libo sostavleniem tablic perekodirovki dlya kazhdoj pary kodirovok libo ispolzovaniem promezhutochnogo preobrazovaniya v tretyu kodirovku vklyuchayushuyu vse simvoly vseh kodirovok Problema dublirovaniya shriftov Dlya kazhdoj kodirovki sozdavalsya svoj shrift dazhe esli nabory simvolov v kodirovkah sovpadali chastichno ili polnostyu Problemu mozhno bylo reshit putyom sozdaniya bolshih shriftov iz kotoryh vposledstvii vybiralis by nuzhnye dlya dannoj kodirovki simvoly Odnako eto trebovalo sozdaniya edinogo reestra simvolov chtoby opredelyat chemu chto sootvetstvuet Byla priznana neobhodimost sozdaniya edinoj shirokoj kodirovki Kodirovki s peremennoj dlinoj simvola shiroko ispolzuyushiesya v Vostochnoj Azii byli priznany slishkom slozhnymi v ispolzovanii poetomu bylo resheno ispolzovat simvoly fiksirovannoj shiriny Ispolzovanie 32 bitnyh simvolov kazalos slishkom rastochitelnym poetomu bylo resheno ispolzovat 16 bitnye Pervaya versiya Yunikoda predstavlyala soboj kodirovku s fiksirovannym razmerom simvola v 16 bit to est obshee chislo kodov bylo 216 65 536 S teh por simvoly stali oboznachat chetyrmya shestnadcaterichnymi ciframi naprimer U 04F0 Pri etom v Yunikode planirovalos kodirovat ne vse sushestvuyushie simvoly a tolko te kotorye neobhodimy v povsednevnom obihode Redko ispolzuemye simvoly dolzhny byli razmeshatsya v oblasti polzovatelskih simvolov private use area kotoraya pervonachalno zanimala kody U D800 U F8FF Chtoby ispolzovat Yunikod takzhe i v kachestve promezhutochnogo zvena pri preobrazovanii raznyh kodirovok drug v druga v nego vklyuchili vse simvoly predstavlennye vo vseh naibolee izvestnyh kodirovkah V dalnejshem odnako bylo prinyato reshenie kodirovat vse simvoly i v svyazi s etim znachitelno rasshirit kodovuyu oblast Odnovremenno s etim kody simvolov stali rassmatrivatsya ne kak 16 bitnye znacheniya a kak abstraktnye chisla kotorye v kompyutere mogut predstavlyatsya mnozhestvom raznyh sposobov sm sposoby predstavleniya Poskolku v ryade kompyuternyh sistem naprimer Windows NT fiksirovannye 16 bitnye simvoly uzhe ispolzovalis v kachestve kodirovki po umolchaniyu bylo resheno vse naibolee vazhnye znaki kodirovat tolko v predelah pervyh 65 536 pozicij tak nazyvaemaya angl Basic Multilingual Plane BMP Ostalnoe prostranstvo ispolzuetsya dlya dopolnitelnyh simvolov angl supplementary characters sistem pisma vymershih yazykov ili ochen redko ispolzuemyh kitajskih ieroglifov matematicheskih i muzykalnyh simvolov Dlya sovmestimosti so starymi 16 bitnymi sistemami byla izobretena sistema UTF 16 gde pervye 65 536 pozicij za isklyucheniem pozicij iz intervala U D800 U DFFF otobrazhayutsya neposredstvenno kak 16 bitnye chisla a ostalnye predstavlyayutsya v vide surrogatnyh par pervyj element pary iz oblasti U D800 U DBFF vtoroj element pary iz oblasti U DC00 U DFFF Dlya surrogatnyh par byla ispolzovana chast kodovogo prostranstva 2048 pozicij otvedyonnogo dlya chastnogo ispolzovaniya Poskolku v UTF 16 mozhno otobrazit tolko 220 216 2048 1 112 064 simvolov to eto chislo i bylo vybrano v kachestve okonchatelnoj velichiny kodovogo prostranstva Yunikoda diapazon kodov 0x000000 0x10FFFF Hotya kodovaya oblast Yunikoda byla rasshirena za predely 216 uzhe v versii 2 0 pervye simvoly v verhnej oblasti byli razmesheny tolko v versii 3 1 Yunikod yavlyaetsya samoj rasprostranyonnoj kodirovkoj v veb sektore s 2008 goda Na konec 2024 goda dolya veb sajtov ispolzuyushih Yunikod sostavila okolo 98 3 Versii YunikodaRabota po dorabotke standarta prodolzhaetsya Novye versii vypuskayutsya po mere izmeneniya i popolneniya tablic simvolov Parallelno vypuskayutsya novye dokumenty ISO IEC 10646 Pervyj standart vypushen v 1991 godu poslednej na dannyj moment versiej yavlyaetsya 16 0 0 10 sentyabrya 2024 Versii standarta 1 0 5 0 publikovalis kak knigi i imeyut ISBN Nomer versii standarta sostavlen iz tryoh cifr naprimer 3 1 1 Tretyu cifru menyayut pri vnesenii v standart nebolshih izmenenij ne dobavlyayushih novyh simvolov isklyuchenie versiya 1 0 1 v kotoroj dobavleny unificirovannye ideogrammy kitajskogo yaponskogo i korejskogo pisma Baza dannyh simvolov Yunikoda Unicode Character Database dostupna dlya vseh versij na oficialnom sajte kak v prostom tekstovom tak i v XML formate Fajly rasprostranyayutsya pod BSD podobnoj licenziej Versii Yunikoda Nomer versii Data publikacii ISBN knigi Izdanie ISO IEC 10646 Kolichestvo pis men no stej Kolichestvo simvolov1 0 0 Oktyabr 1991 ISBN 0 201 56788 1 Vol 1 23 7161Iznachalno Yunikod soderzhal simvoly sleduyushih pismennostej arabskoe pismo armyanskoe pismo bengalskoe pismo chzhuinskoe pismo kirillica devanagari gruzinskoe pismo grecheskoe i koptskoe pismo gudzharati gurmukhi hangyl evrejskoe pismo hiragana kannada katakana laosskoe pismo latinica malayalam oriya tamilskoe pismo telugu tajskoe pismo i tibetskoe pismo1 0 1 Iyun 1992 ISBN 0 201 60845 6 Vol 2 24 28 359Dobavleny 20 902 unificirovannye ideogrammy kitajskogo yaponskogo i korejskogo pisma1 1 Iyun 1993 ISO IEC 10646 1 1993 23 34 233Dobavleno 4306 slogov hangylya dopolnivshih uzhe imeyushiesya v kodirovke 2350 simvolov Udaleny simvoly tibetskogo pisma2 0 Iyul 1996 ISBN 0 201 48345 9 ISO IEC 10646 1 1993 i Amendments 5 6 7 24 38 950Udaleny dobavlennye ranee slogi hangylya i dobavleny 11 172 novyh sloga hangylya s novymi kodami Vozvrasheny udalyonnye ranee simvoly tibetskogo pisma simvoly poluchili novye kody i byli razmesheny v raznyh tablicah Vvedyon mehanizm surrogatnyh angl surrogate simvolov Vydeleno mesto dlya ploskostej angl planes 15 i 162 1 Maj 1998 ISO IEC 10646 1 1993 Amendments 5 6 7 dva simvola iz Amendment 18 24 38 952Dobavleny simvol evro i zamenyayushij simvol3 0 Sentyabr 1999 ISBN 0 201 61633 5 ISO IEC 10646 1 2000 37 49 259Dobavleny pismo cheroki efiopskoe pismo khmerskoe pismo mongolskie pismennosti birmanskoe pismo ogamicheskoe pismo runy singalskoe pismo sirijskoe pismo tana kanadskoe slogovoe pismo i pismo i a takzhe simvoly shrifta Brajlya3 1 Mart 2001 ISO IEC 10646 1 2000 ISO IEC 10646 2 2001 40 94 205Dobavleny dezeretskoe pismo gotskoe pismo i angl a takzhe simvoly zapadnoj i vizantijskoj muzyki 42 711 unificirovannyh ideogramm kitajskogo yaponskogo i korejskogo pisma Vydeleno mesto dlya ploskostej 1 2 i 143 2 Mart 2002 ISO IEC 10646 1 2000 i Amendment 1 ISO IEC 10646 2 2001 44 95 221Dobavleny pismo buhid angl bajbajin i pismo tagbanva4 0 Aprel 2003 ISBN 0 321 18578 1 ISO IEC 10646 2003 51 96 447Dobavleny kiprskoe pismo pismo limbu linejnoe pismo B somalijskoe pismo alfavit shou pismo ly i ugaritskoe pismo a takzhe simvoly geksagramm4 1 Mart 2005 ISO IEC 10646 2003 i Amendment 1 59 97 720Dobavleny pismo lontara glagolica pismo kharoshthi novoe pismo ly drevnepersidskaya klinopis silhetskoe nagari i drevnelivijskoe pismo Simvoly koptskogo pisma byli otdeleny ot simvolov grecheskogo pisma Takzhe dobavleny simvoly staryh grecheskih cifr muzykalnye simvoly Drevnej Grecii i simvol grivny valyuty Ukrainy 5 0 Iyul 2006 ISBN 0 321 48091 0 ISO IEC 10646 2003 Amendments 1 2 chetyre simvola iz Amendment 3 64 99 089Dobavleny balijskoe pismo klinopis pismo nko mongolskoe kvadratnoe pismo i finikijskoe pismo5 1 Aprel 2008 ISO IEC 10646 2003 i Amendments 1 2 3 4 75 100 713Dobavleny karijskoe pismo chamskaya pismennost pismo kaya li pismo lepcha likijskoe pismo lidijskoe pismo pismo ol chiki redzhangskoe pismo pismo saurashtra sundanskoe pismo drevnetyurkskoe pismo i pismo vai Dobavleny simvoly festskogo diska simvoly kostej dlya madzhonga i domino zaglavnaya bukva escet ẞ a takzhe bukvy latinicy ispolzovavshiesya v srednevekovyh rukopisyah dlya angl Novymi simvolami dopolnen nabor simvolov birmanskogo pisma5 2 Oktyabr 2009 ISO IEC 10646 2003 i Amendments 1 2 3 4 5 6 90 107 361Dobavleny avestijskoe pismo pismo bamum egipetskoe ieroglificheskoe pismo po angl soderzhashemu 1071 simvol imperskoe aramejskoe pismo angl angl yavanskoe pismo pismo kajthi pismo lisu pismo manipuri yuzhnoaravijskoe pismo drevnetyurkskoe pismo samarityanskoe pismo pismo lanna i pismo taj vet Dobavleny 4149 novyh angl CJK C simvoly vedijskogo pisma simvol tenge valyuty Kazahstana a takzhe rasshiren nabor simvolov chamo starogo hangylya6 0 Oktyabr 2010 ISO IEC 10646 2010 i simvol indijskoj rupii 93 109 449Dobavleny batakskoe pismo pismo brahmi mandejskoe pismo Dobavleny simvoly igralnyh kart dorozhnyh znakov geograficheskih kart alhimii emotikona i emodzi a takzhe 222 angl CJK D 6 1 Yanvar 2012 ISO IEC 10646 2012 100 110 181Dobavleny pismo chakma meroitskij kursiv i meroitskie ieroglify pismo myao pismo sharada angl i pismo takri6 2 Sentyabr 2012 ISO IEC 10646 2012 i simvol tureckoj liry 100 110 182Dobavlen simvol tureckoj liry valyuty Turcii 6 3 Sentyabr 2013 ISO IEC 10646 2012 i shest simvolov 100 110 187Dobavleno pyat simvolov dlya formatirovaniya dvunapravlennogo teksta7 0 16 iyunya 2014 ISO IEC 10646 2012 Amendments 1 2 i simvol rublya 123 113 021Dobavleny pismo bassa agvanskoe pismo stenografiya Dyuploje elbasanskoe pismo pismo grantha angl angl linejnoe pismo A angl manihejskoe pismo pismo kikakui pismo modi angl nabatejskoe pismo severnoaravijskoe pismo drevnepermskoe pismo pismo pahau palmirskoe pismo angl angl siddhamatrika pismo tirhuta varang kshiti i angl a takzhe simvol rossijskogo rublya i simvol azerbajdzhanskogo manata8 0 17 iyunya 2015 ISO IEC 10646 2014 Amendment 1 simvol lari 9 unificirovannyh ideogramm KKYa 41 emodzi 129 120 737Dobavleny pismo ahom anatolijskie ieroglify vengerskie runy SignWriting 5776 Unificirovannye ideogrammy KKYa rasshirenie E strochnye bukvy pisma cheroki bukvy latinicy dlya nemeckoj dialektologii 41 emodzi a takzhe pyat simvolov izmeneniya cveta kozhi dlya emotikonov Dobavlen simvol lari valyuty Gruzii 9 0 21 iyunya 2016 ISO IEC 10646 2014 Amendments 1 2 adlam neva yaponskie simvoly dlya TV 74 emodzi i simvolov 135 128 237Dobavleny pismo osejdzh tangutskoe pismo a takzhe 72 emodzi i yaponskie simvoly dlya televideniya10 0 20 iyunya 2017 ISO IEC 10646 2017 56 emodzi 285 simvolov hentajgany 3 simvola kvadratnogo pisma Dzanabadzara 139 136 755Dobavleny kvadratnoe pismo Dzanabadzara pismo soyombo pismo nyuj shu pismo hentajgana 7494 Unificirovannye ideogrammy KKYa rasshirenie F a takzhe 56 emodzi i simvol bitkojna11 0 Iyun 2018 ISO IEC 10646 2017 146 137 439Dobavleny dogra gruzinskoe pismo mtavruli gundzhalskoe gondi hanifi indijskie cifry sijyak makasarskoe pismo medefajdrin drevne sogdijskoe pismo cifry majya 5 ideogramm KKYa simvoly syanci i polovin zvyozdochek dlya ocenki a takzhe 145 emodzi chetyre simvola izmeneniya prichyoski dlya emotikonov i simvol kopilefta12 0 Mart 2019 ISO IEC 10646 2017 Amendments 1 2 a takzhe 62 dopol ni tel nyh simvolov 150 137 993Dobavleny elimajskoe pismo angl hmong vancho dopolneniya dlya pisma Pollarda malaya kana dlya staryh yaponskih tekstov istoricheskie drobi i simvoly tamilskogo pisma bukvy laosskogo pisma dlya pali bukvy latinicy dlya transliteracii ugaritskogo upravlyayushie simvoly formatirovaniya egipetskih ieroglifov a takzhe 61 emodzi12 1 Maj 2019 150 137 994Ekstrennyj vypusk dobavlen kvadratnyj simvol epohi rejva13 0 Mart 2020 154 143 924Dobavleny pismo maloe kidanskoe pismo ezidskoe pismo 4969 ideogramm KKYa vklyuchaya 4939 a takzhe 55 emodzi simvoly Creative Commons i simvoly dlya unasledovannoj vychislitelnoj tehniki Vydeleno mesto dlya ploskosti 314 0 Sentyabr 2021 159 144 762Dobavleny pismo kipro minojskoe pismo vitkutskoe pismo staroujgurskoe pismo dopolnitelnye bukvy latinicy bloki Rasshirennaya latinica F Rasshirennaya latinica G dlya ispolzovaniya v rasshireniyah dlya MFA dobavlenie arabskogo pisma dlya ispolzovaniya v yazykah Afriki Irana Pakistana Malajzii Indonezii Yavy i Bosnii a takzhe dopolneniya dlya ispolzovaniya v Korane drugie dopolneniya dlya podderzhki yazykov Severnoj Ameriki Filippin Indii i Mongolii dobavlenie simvola soma notopisi znamennogo peniya i 37 emodzi 15 0 Sentyabr 2022 161 149 251Dobavleny dlya yazyka mundari 1950 kavi staroyavanskij kaktovikskie cifry simvoly kirillicy dlya zapisi transkripcii latinskie bukvy dlya zapisi yazyka malayalam 3 ligatury iz tureckogo Korana 1 egipetskij ieroglif simvoly dlya peredachi zatyortyh egipetskih ieroglifov simvoly iz dzhajnizma zvezda bahaizma simvoly pyati transneptunovyh obektov i 31 emodzi vklyuchaya cveta kozhi 15 1 12 sentyabrya 2023 161 149 878Dobavleny 897 ieroglifov kitajskih imyon kotorye kitajcy hoteli raspolozhit na ploskosti 0A 622 iz nih opoznany kak novye Takzhe 5 simvolov struktury kitajskih ieroglifov 10 raznyh angl posledovatelnostej emodzi i 18 posledovatelnostej izobrazhayushih lyudej kotorye smotryat vpravo isklyuchaya cveta kozhi 16 0 10 sentyabrya 2024 168 155 063Dobavleny pochti 4000 egipetskih ieroglifov bolee 600 simvolov so staryh kompyuterov novye pismennosti tulu albanskij Todri angl Senegal sunvar Dzhenticha gurung i ol onal 6 latinskih simvolov dlya zapisi afrikanskih i indejskih yazykov kirillicheskaya bukva T dlya hanty arabskie bukvy iz pegona i livijskogo Korana dva komplekta birmanskih cifr dve cherty KKYa nukta iz yazyka kavi egiptologicheskie strelki I vsego 8 emodzi vklyuchaya avtomaticheski dobavivshijsya ostrov Sark CQ 17 0 9 sentyabrya 2025 173 159 910 Dobavleny bolee 4300 KKYa ieroglifov Pismennosti beriya sidetskij tolong siki Reformirovan Sharada dlya sovremennogo kashmirskogo Arabskie ligatury titulov otbroshennye v U14 za nehvatkoj istochnikov S novym slovaryom tangutskogo 2021 zapisali vse ego narabotki 27 metok proiznosheniya Alfil i farzin iz proto shahmat Himicheskie strelki Mnozhestvo staryh simvolov dlya asteroidov kogda te v XIX veke nachali otkryvat Simvoly arabskoj geomantii 8 odnosimvolnyh emodzi Poslednie mnogorasovye emodzi borcy i devushki Plejboya Reshili chto budet tancevat bespolyj tancor sovremennyj balet 10 simvolov so staryh kompyuterov razunificirovany s emodzi Po uskorennoj programme dobavlen saudovskij riyal Primechaniya Vklyuchaya edinstvennyj kod shrift Brajlya edinstvennuyu stenograficheskuyu sistemu stenografiya Dyuploje a takzhe katakanu hiraganu zhestovoe pismo Satton isklyuchaya hentajganu schitaetsya hiraganoj dva alternativnyh gruzinskih alfavita schitayutsya gruzinskim a takzhe drugie netekstovye chetyre vida not cherchenie matematicheskie znaki Unificirovannye sistemy kitajskie i yaponskie ieroglify arabskij urdu shahmukhi pegon i volofal schitayutsya za odnu grecheskij i koptskij do versii 4 1 kogda ih razunificirovali tozhe Pri dalnejshem obnovlenii dannyh fajl PropertyValueAliases txt razdel sc kolichestvo strok v etom razdele minus tri poslednie tri tehnicheskie Vklyuchaya pechataemye angl graphic upravlyayushie angl control i formatiruyushie angl format simvoly ne vklyuchaya lichnye simvoly angl private use nesimvolnye pozicii angl noncharacters poloviny surrogatnyh par angl surrogate code points neoficialno zanyatye U 1D548 azhurnoe ℚ pri oficialnom U 211A ispolzuetsya chtoby garantirovanno nabrat slovo odnim shriftom U 11C09 nachalnoe slogovoe LL v sanskrite bukva est no ne najdena v istochnikah imenno pismom bhajkshuki Press relizy Yunikoda dayut cifru na 65 menshe ne uchityvayut upravlyayushie 00 1F 7F 9F Stoit priznat chto kategoriya etih simvolov ponachalu neskolko raz menyalas Pri dalnejshem obnovlenii dannyh kolichestvo zayavlennyh simvolov 65 Drevnij tulu i blizkuyu k nemu sistemu pismennosti tigalari ot sovremennogo tulu otkazalis kak iz za neustoyavshejsya sistemy unificiruemoj s malayalamom tak i iz za raznogo podhoda k drevnemu i sovremennomu pismu Ne putat s brahmijskoj abugidoj poyavivshejsya pozzhe Kodovoe prostranstvoHotya forma zapisi UTF 8 pozvolyaet kodirovat do 221 2 097 152 kodovyh pozicij bylo prinyato reshenie ispolzovat lish 1 112 064 dlya sovmestimosti s UTF 16 Vprochem etogo v dannyj moment dostatochno v versii 15 1 ispolzuetsya vsego 149 878 kodovyh pozicij Kodovoe prostranstvo razbito na 17 ploskostej angl planes po 216 65 536 simvolov Nulevaya ploskost plane 0 nazyvaetsya bazovoj basic i soderzhit simvoly naibolee upotrebitelnyh pismennostej Ostalnye ploskosti dopolnitelnye supplementary Pervaya ploskost plane 1 ispolzuetsya v osnovnom dlya istoricheskih pismennostej vtoraya plane 2 dlya redko ispolzuemyh ieroglifov kitajskogo pisma KKYa tretya plane 3 zarezervirovana dlya arhaichnyh kitajskih ieroglifov Ploskost 14 otvedena dlya simvolov ispolzuemyh po osobomu naznacheniyu Ploskosti 15 i 16 vydeleny dlya chastnogo upotrebleniya Dlya oboznacheniya simvolov Unicode ispolzuetsya zapis vida U xxxx dlya kodov 0 FFFF ili U xxxxx dlya kodov 10000 FFFFF ili U xxxxxx dlya kodov 100000 10FFFF gde xxx shestnadcaterichnye cifry Naprimer simvol ya U 044F imeet kod 044F16 110310 Ploskosti YunikodaPloskost Nazvanie Diapazon simvolov0 Bazovaya mnogoyazykovaya ploskost Basic Multilingual Plane BMP U 0000 U FFFF1 Dopolnitelnaya mnogoyazykovaya ploskost Supplementary Multilingual Plane SMP U 10000 U 1FFFF2 Dopolnitelnaya ideograficheskaya ploskost Supplementary Ideographic Plane SIP U 20000 U 2FFFF3 Tretichnaya ideograficheskaya ploskost Tertiary Ideographic Plane TIP U 30000 U 3FFFF4 13 ne ispolzuyutsya U 40000 U DFFFF14 Dopolnitelnaya specializirovannaya ploskost Supplementary Special purpose Plane SSP U E0000 U EFFFF15 16 Dopolnitelnye oblasti dlya chastnogo ispolzovaniya Supplementary Private Use Area A B SPUA A B U F0000 U 10FFFFSistema kodirovaniyaUniversalnaya sistema kodirovaniya Yunikod predstavlyaet soboj nabor graficheskih simvolov i sposob ih kodirovaniya dlya kompyuternoj obrabotki tekstovyh dannyh Graficheskie ili pechataemye simvoly eto simvoly imeyushie vidimoe izobrazhenie Graficheskim simvolam protivopostavlyayutsya upravlyayushie i formatiruyushie simvoly Graficheskie simvoly vklyuchayut v sebya sleduyushie gruppy bukvy soderzhashiesya hotya by v odnom iz obsluzhivaemyh alfavitov cifry znaki punktuacii specialnye znaki matematicheskie tehnicheskie ideogrammy i pr razdeliteli diakriticheskie metki vklyuchaya nevidimye Yunikod eto sistema dlya linejnogo predstavleniya teksta Simvoly imeyushie dopolnitelnye nad ili podstrochnye elementy mogut byt predstavleny v vide postroennoj po opredelyonnym pravilam posledovatelnosti kodov sostavnoj variant composite character ili v vide edinogo simvola monolitnyj variant precomposed character S 2014 goda schitaetsya chto vse bukvy krupnyh pismennostej v Yunikod vneseny i esli simvol dostupen v sostavnom variante dublirovat ego v monolitnom vide ne nuzhno Obshie principy Garantii stabilnosti Kak tolko simvol poyavilsya v kodirovke on ne sdvinetsya i ne ischeznet Takim obrazom kazhdyj novyj Yunikod budet nadmnozhestvom starogo Esli simvol okazhetsya plohim ego zapreshayut Esli zhe potrebuetsya izmenit poryadok simvolov eto delaetsya ne peremenoj pozicij a nacionalnym poryadkom sortirovki Est i drugie bolee tonkie garantii stabilnosti naprimer ne budut menyatsya tablicy normalizacii Dinamicheskaya komponovka Takoj vysokoj celi kak universalnost Yunikod dobivaetsya putyom dinamicheskoj sborki pechatnogo teksta Inogda dlya udobstva delayut i monolitnye simvoly no v celom A A Logicheskij poryadok Simvoly v stroke zapisyvayutsya priblizitelno v poryadke prochteniya v tom chisle v dvunapravlennom pisme arabskij tekst kodiruetsya sprava nalevo a okazavsheesya v nyom evropejskoe chislo sleva napravo Metka umlyaut oglasovka idyot posle osnovnogo simvola Est isklyucheniya s vizualnym poryadkom naprimer laosskij Preobrazuemost Esli v vazhnoj kodirovke dve formy odnogo simvola zakodirovany raznymi poziciyami eto delaet i Yunikod Preobrazovanie ne obyazatelno 1 1 odin simvol drugoj kodirovki mozhet preobrazovatsya v neskolko simvolov Yunikoda i naoborot Prostoj tekst Yunikod kodiruet prostoj tekst bez oformleniya Schitaetsya chto prostoj tekst dolzhen hranit dostatochno dannyh chtoby chitaemo otobrazit ego i bolshe nichego Semantika Svojstva simvolov zadayutsya formalno s pomoshyu formata CSV Sushestvuet takzhe versiya v XML nepolnaya i na Yunikod 16 eyo sushestvovanie bylo pod voprosom no kto to vzyalsya podderzhivat etu bazu Simvoly ne glify Simvol edinica smysla Glif izobrazhenie soderzhasheesya v shrifte i vyvodyasheesya na ekran pechat Tak v shrifte arabskogo stilya nastali k budut tysyachi glifov No v kodirovke okolo 200 simvolov standartnogo arabskogo peredayushih smysl I naoborot inogda sm Unifikaciya raznye simvoly mogut imet odinakovyj glif Narushenie etogo principa ili istoricheskoe s s sushestvovalo eshyo do principa dinamicheskoj komponovki ili vyzvano slozhnostyami shriftov Ţ Ț poslednee ispolzuetsya v moldavskom i rumynskom Universalnost Yunikod razrabotan dlya lyudej raznyh yazykov i professij rabotayushih v biznese obrazovanii religii i nauke dlya sovremennyh i istoricheskih tekstov Za predelami Yunikoda lezhat pismennosti pro kotorye malo chto izvestno chtoby nadyozhno zakodirovat simvoly pismennosti chi polzovateli ne prishli k de fakto standartu netekstovye naprimer piktograficheskie pismennosti Unifikaciya Yunikod staraetsya ne dublirovat simvoly Tak anglijskaya bukva vaj francuzskaya igrek i nemeckaya ipsilon odna i ta zhe kodovaya poziciya Y Malo togo shodnye ieroglify kitajskogo i yaponskogo odna kodovaya poziciya Sushestvuet neskolko vazhnyh isklyuchenij Shodnye bukvy raznyh pismennostej kodiruyutsya raznymi kodovymi poziciyami Chasto pozicii dubliruyutsya dlya uprosheniya obrabotki tak v Yunikode tri bukvy D s raznymi strochnymi Matematicheskij shtrih i takoj zhe shtrih dlya indikacii myagkosti zvukov raznye simvoly vtoroj schitaetsya bukvoj modifikatorom Preobrazuemost mozhet idti vrazrez s unifikaciej strochnaya grecheskaya sigma imeet dve raznyh formy i oni raznye kodovye pozicii Effektivnost Yunikod ustroen tak chtoby effektivnye realizacii byli osushestvimy Kody simvolov posledovatelnye chisla ot 0 do 10FFFF16 eto pozvolyaet imet delo s tablicami poiska UTF 8 i UTF 16 samosinhroniziruyushiesya kody a vazhnejshie simvoly dostupny bez raskodirovki Yunikod izbegaet formatiruyushih simvolov kotorye menyayut vnutrennee sostoyanie I mnogoe drugoe Politika konsorciuma Konsorcium ne sozdayot novogo a konstatiruet slozhivshijsya poryadok veshej Naprimer kartinki emodzi byli dobavleny potomu chto yaponskie operatory mobilnoj svyazi shiroko ih ispolzovali Dlya etogo dobavlenie simvola prohodit cherez slozhnyj process I naprimer simvol rossijskogo rublya proshyol ego za tri mesyaca kak tolko poluchil oficialnyj status prichyom do etogo on mnogo let de fakto ispolzovalsya i ego otkazyvalis vklyuchit v Yunikod Tovarnye znaki kodiruyut tolko v poryadke isklyucheniya Tak v Yunikode net flaga Windows ili yabloka Apple Emodzi ne vvodyatsya v Yunikod esli Ponyatie mozhno poluchit kombinaciej imeyushihsya simvolov myt ruki voda ruki Belku chasto izobrazhayut kartinkoj burunduka Ponyatie slishkom specificheskoe esli na kartinke yaponskogo blyuda sushi risuyut naprimer sushi s krevetkoj to ne stoit zaprashivat drugie vidy sushi Ponyatie mozhet vyzvat volnu novyh dobavlenij Flagi i nadpisi Konsorcium perestal vklyuchat takie emodzi Chto yavlyaetsya stranoj a chto net opredelyaetsya standartom ISO 3166 1 i flagi perenosyatsya ottuda avtomaticheski Kartinka prehodyashaya naprimer virus COVID 19 Nekotorye proizvoditeli risuyut virus na meste emodzi mikroorganizm Trebuetsya zakodirovat konkretnoe izobrazhenie naprimer internet mem Variacii napravleniya dvizheniya s Yunikoda 15 1 ih ponemnogu vnosyat Specifichnye dlya pismennostej principy Pismennosti grecheskoj gruppy latinica i dr formy kotorye mozhno poluchit kombinirovaniem kodiruyutsya monolitno v kachestve bolshogo isklyucheniya Pismennosti brahmijskoj gruppy devanagari i dr specsimvol nevidimaya virama razunificirovan chtoby avtor shrifta prochital standart i ponyal chto on delaet Palka kodiruetsya kak isklyuchenie po umolchaniyu beryotsya danda iz devanagari Egipetskie ieroglify podeleny na tri gruppy bazovye gt 4400 shtuk rasshirennye vstrechayutsya tolko v sovremennyh publikaciyah gt 500 i sovmestimye simvoly iz spiska Gardinera kotorye segodnya by ne zakodirovali lt 40 Emodzi chelovechki inklyuzivny zakodirovany bespolye muzhskie i zhenskie versii v pyati cvetah kozhi Nekotorye predmety menyayutsya pod davleniem inklyuzivnosti lejkoplastyr perekrashen iz telesnogo v belyj Chtoby izbezhat kombinatornogo vzryva ubrany s klaviatur emodzi semej Emodzi kolobki ne inklyuzivny Kombiniruyushie metkiPredstavlenie simvola J U 0419 v vide bazovogo simvola I U 0418 i kombiniruyushej metki U 0306 Simvoly v Yunikode podrazdelyayutsya na bazovye angl base characters i kombiniruyushie angl combining marks Metki obychno sleduyut za bazovym simvolom i izmenyayut ego otobrazhenie opredelyonnym obrazom K kombiniruyushim simvolam naprimer otnosyatsya diakriticheskie znaki znaki udareniya Naprimer russkuyu bukvu J v Yunikode mozhno zapisat v vide bazovogo simvola I U 0418 i kombiniruyushego simvola U 0306 otobrazhaemogo nad bazovym Kombiniruyushie simvoly pomecheny v tablicah simvolov Yunikoda osobymi kategoriyami Nonspacing Mark neprotyazhyonnaya metka takovye obychno otobrazhayutsya nad ili pod bazovym simvolom i krajne redko razdvigayut kegelnuyu ploshadku simvola naprimer i Enclosing Mark ohvatyvayushaya metka eti metki ohvatyvayut simvol so vseh storon i v ideale dolzhny rasshiryat ego kegelnuyu ploshadku Spacing Mark protyazhyonnaya metka predstavlyaet soboj glif pered ili posle osnovnogo simvola obladayushij sobstvennoj kegelnoj ploshadkoj Osobyj tip kombiniruyushih simvolov selektory varianta nachertaniya angl variation selectors Oni dejstvuyut tolko na te bazovye simvoly dlya kotoryh takie varianty opredeleny K primeru v versii Yunikoda 5 0 varianty nachertaniya opredeleny dlya ryada matematicheskih simvolov dlya simvolov tradicionnogo mongolskogo alfavita i dlya simvolov mongolskogo kvadratnogo pisma Algoritmy normalizaciiIz za nalichiya v Yunikode kombiniruyushih simvolov odni i te zhe znaki pismennosti mozhno predstavit razlichnymi kodami Tak naprimer bukvu J v primere vyshe mozhno zapisat kak otdelnym simvolom tak i sochetaniem bazovogo i kombinirovannogo Iz za etogo sravnenie strok bajt za bajtom stanovitsya nevozmozhnym Algoritmy normalizacii angl normalization forms reshayut etu problemu vypolnyaya privedenie simvolov k opredelyonnomu standartnomu vidu Privedenie osushestvlyaetsya putyom zameny simvolov na ekvivalentnye s ispolzovaniem tablic i pravil Dekompoziciej nazyvaetsya zamena razlozhenie odnogo simvola na neskolko sostavlyayushih simvolov a kompoziciej naoborot zamena soedinenie neskolkih sostavlyayushih simvolov na odin simvol V standarte Yunikoda opredeleny chetyre algoritma normalizacii teksta NFD NFC NFKD i NFKC Kanonicheskaya dekompoziciya NFD NFD angl normalization form D D ot angl decomposition forma normalizacii D kanonicheskaya dekompoziciya algoritm soglasno kotoromu vypolnyaetsya rekursivnoe razlozhenie sostavnyh simvolov angl precomposed characters na posledovatelnost iz odnogo ili neskolkih prostyh simvolov v sootvetstvii s tablicami dekompozicii Rekursivnoe potomu chto v processe razlozheniya sostavnoj simvol mozhet byt razlozhen na neskolko drugih nekotorye iz kotoryh tozhe yavlyayutsya sostavnymi i k kotorym primenyaetsya dalnejshee razlozhenie Primery WU 2126 WU 03A9AU 00C5 AU 0041 U 030AṩU 1E69 sU 0073 U 0323 U 0307ḋ U 1E0B U 0323 dU 0064 U 0323 U 0307q U 0071 U 0307 U 0323 qU 0071 U 0323 U 0307Kanonicheskaya kompoziciya NFC NFC angl normalization form C C ot angl composition forma normalizacii C algoritm soglasno kotoromu posledovatelno vypolnyayutsya kanonicheskaya dekompoziciya i kanonicheskaya kompoziciya Snachala kanonicheskaya dekompoziciya algoritm NFD privodit tekst k forme D Zatem kanonicheskaya kompoziciya operaciya obratnaya NFD obrabatyvaet tekst ot nachala k koncu s uchyotom sleduyushih pravil simvol S schitaetsya nachalnym esli imeet nulevoj klass kombiniruemosti angl combining class of zero soglasno tablice simvolov Yunikoda v lyuboj posledovatelnosti simvolov nachinayushejsya s simvola S simvol C blokiruetsya ot S tolko esli mezhdu S i C est kakoj libo simvol B kotoryj libo yavlyaetsya nachalnym libo imeet odinakovyj ili bolshij klass kombiniruemosti chem C Eto pravilo rasprostranyaetsya tolko na stroki proshedshie kanonicheskuyu dekompoziciyu simvol schitaetsya pervichnym kompozitom esli imeet kanonicheskuyu dekompoziciyu v tablice simvolov Yunikoda ili kanonicheskuyu dekompoziciyu dlya hangylya i on ne vhodit v spisok isklyuchenij simvol X mozhet byt pervichno sovmeshyon s simvolom Y esli i tolko esli sushestvuet pervichnyj kompozit Z kanonicheski ekvivalentnyj posledovatelnosti lt X Y gt esli ocherednoj simvol C ne blokiruetsya poslednim vstrechennym nachalnym bazovym simvolom L i on mozhet byt uspeshno pervichno sovmeshyon s nim to L zamenyaetsya na kompozit L C a C udalyaetsya Primer oU 006F U 0302 oU 00F4Sovmestimaya dekompoziciya NFKD NFKD angl normalization form KD forma normalizacii KD sovmestimaya dekompoziciya algoritm soglasno kotoromu posledovatelno vypolnyayutsya kanonicheskaya dekompoziciya i zameny simvolov teksta po tablicam sovmestimoj dekompozicii Tablicy sovmestimoj dekompozicii predusmatrivayut zamenu na pochti ekvivalentnye simvoly pohozhih na bukvy ℍ i ℌ obvedyonnyh kruzhkami s izmenyonnymi razmerami カ i カ povyornutyh i stepenej i drobej drugih Primery ℍU 210D HU 0048 U 2460 1U 0031カU FF76 カU 30AB U FE37 U 007B U 2079 9U 0039 U 00BC 1 4U 0031 U 2044 U 0034 U 2122 T MU 0054 U 004DSovmestimaya kompoziciya NFKC NFKC angl normalization form KC forma normalizacii KC algoritm soglasno kotoromu posledovatelno vypolnyayutsya sovmestimaya dekompoziciya algoritm NFKD i kanonicheskaya kompoziciya algoritm NFC Primery Ishodnyj tekst NFD NFC NFKD NFKCfiU FB01 fiU FB01 fiU FB01 f iU 0066 U 0069 f iU 0066 U 00692 U 0032 U 2075 2 U 0032 U 2075 2 U 0032 U 2075 2 5U 0032 U 0035 2 5U 0032 U 0035ẛ U 1E9B U 0323 ſ U 017F U 0323 U 0307 ẛ U 1E9B U 0323 s U 0073 U 0323 U 0307 ṩU 1E69jU 0439 i U 0438 U 0306 jU 0439 i U 0438 U 0306 jU 0439yoU 0451 e U 0435 U 0308 yoU 0451 e U 0435 U 0308 yoU 0451AU 0410 AU 0410 AU 0410 AU 0410 AU 0410がU 304C か U 304B U 3099 がU 304C か U 304B U 3099 がU 304C U 2167 U 2167 U 2167 V I I IU 0056 U 0049 U 0049 U 0049 V I I IU 0056 U 0049 U 0049 U 0049cU 00E7 c U 0063 U 0327 cU 00E7 c U 0063 U 0327 cU 00E7Dvunapravlennoe pismoStandart Yunikod podderzhivaet pismennosti yazykov kak s napravleniem napisaniya sleva napravo angl left to right LTR tak i s napisaniem sprava nalevo angl right to left RTL naprimer arabskoe i evrejskoe pismo V oboih sluchayah simvoly hranyatsya v estestvennom poryadke ih otobrazhenie s uchyotom nuzhnogo napravleniya pisma obespechivaetsya prilozheniem Krome togo Yunikod podderzhivaet kombinirovannye teksty sochetayushie fragmenty s raznym napravleniem pisma Dannaya vozmozhnost nazyvaetsya dvunapravlennost angl bidirectional text BiDi Nekotorye uproshyonnye obrabotchiki teksta naprimer v sotovyh telefonah mogut podderzhivat Yunikod no ne imet podderzhki dvunapravlennosti Vse simvoly Yunikoda podeleny na neskolko kategorij pishushiesya sleva napravo pishushiesya sprava nalevo i pishushiesya v lyubom napravlenii Simvoly poslednej kategorii v osnovnom eto znaki punktuacii pri otobrazhenii prinimayut napravlenie okruzhayushego ih teksta Predstavlennye simvolyShema osnovnoj mnogoyazychnoj ploskosti YunikodaOsnovnaya statya Ploskost Yunikod Yunikod vklyuchaet prakticheski vse sovremennye pismennosti v tom chisle arabskuyu armyanskuyu bengalskuyu birmanskuyu glagolicu grecheskuyu gruzinskuyu devanagari evrejskuyu kirillicu kitajskuyu kitajskie ieroglify aktivno ispolzuyutsya v yaponskom yazyke a takzhe izredka v korejskom koptskuyu khmerskuyu latinskuyu tamilskuyu korejskuyu hangyl cheroki efiopskuyu yaponskuyu kotoraya vklyuchaet v sebya krome slogovoj azbuki eshyo i kitajskie ieroglify i drugie S akademicheskimi celyami dobavleny mnogie istoricheskie pismennosti v tom chisle germanskie runy drevnetyurkskie runy drevnegrecheskaya pismennost egipetskie ieroglify klinopis pismennost majya etrusskij alfavit V Yunikode predstavlen shirokij nabor matematicheskih i muzykalnyh simvolov a takzhe piktogramm Gosudarstvennye flagi ne vklyucheny v Yunikod napryamuyu Dlya ih kodirovaniya ispolzuyutsya pary iz 26 bukvennyh simvolov prednaznachennyh dlya predstavleniya dvuhbukvennyh kodov stran po standartu ISO 3166 1 alpha 2 Eti bukvy zakodirovany v diapazone ot U 1F1E6 regional indicator symbol letter a HTML amp 127462 do U 1F1FF regional indicator symbol letter z HTML amp 127487 V Yunikod principialno ne vklyuchayutsya logotipy kompanij i produktov hotya oni i vstrechayutsya v shriftah naprimer logotip Apple v kodirovke MacRoman 0xF0 ili logotip Windows v shrifte Wingdings 0xFF V yunikodovskih shriftah logotipy dolzhny razmeshatsya tolko v oblasti polzovatelskih simvolov Sushestvuyut svobodnye besplatnye shrifty vklyuchayushie v sebya logotipy kompanij programmnyh produktov i drugie tovarnye znaki naprimer angl ISO IEC 10646Konsorcium Yunikoda rabotaet v tesnoj svyazi s rabochej gruppoj ISO IEC JTC1 SC2 WG2 kotoraya zanimaetsya razrabotkoj mezhdunarodnogo standarta 10646 ISO IEC 10646 Mezhdu standartom Yunikoda i ISO IEC 10646 ustanovlena sinhronizaciya hotya kazhdyj standart ispolzuet svoyu terminologiyu i sistemu dokumentacii Sotrudnichestvo Konsorciuma Yunikoda s Mezhdunarodnoj organizaciej po standartizacii angl International Organization for Standardization ISO nachalos v 1991 godu V 1993 godu ISO vypustila standart DIS 10646 1 Dlya sinhronizacii s nim Konsorcium utverdil standart Yunikoda versii 1 1 v kotoryj byli vneseny dopolnitelnye simvoly iz DIS 10646 1 V rezultate znacheniya zakodirovannyh simvolov v Unicode 1 1 i DIS 10646 1 polnostyu sovpali V dalnejshem sotrudnichestvo dvuh organizacij prodolzhilos V 2000 godu standart Unicode 3 0 byl sinhronizirovan s ISO IEC 10646 1 2000 Predstoyashaya tretya versiya ISO IEC 10646 budet sinhronizirovana s Unicode 4 0 Vozmozhno eti specifikacii dazhe budut opublikovany kak edinyj standart Analogichno formatam UTF 16 i UTF 32 v standarte Yunikoda standart ISO IEC 10646 takzhe imeet dve osnovnye formy kodirovaniya simvolov UCS 2 2 bajta na simvol analogichno UTF 16 i UCS 4 4 bajta na simvol analogichno UTF 32 UCS znachit universalnyj nabor kodirovannyh simvolov angl universal coded character set UCS 2 mozhno schitat podmnozhestvom UTF 16 UTF 16 bez surrogatnyh par a UCS 4 yavlyaetsya sinonimom dlya UTF 32 Razlichiya standartov Yunikod i ISO IEC 10646 nebolshie razlichiya v terminologii ISO IEC 10646 ne vklyuchaet razdely neobhodimye dlya polnocennoj realizacii podderzhki Yunikoda net dannyh o dvoichnom kodirovanii simvolov net opisaniya algoritmov sravneniya angl collation i otrisovki angl rendering simvolov net perechnya svojstv simvolov naprimer net perechnya svojstv neobhodimyh dlya realizacii podderzhki dvunapravlennogo angl bi directional pisma Sposoby predstavleniyaYunikod imeet neskolko form predstavleniya angl Unicode transformation format UTF UTF 8 UTF 16 UTF 16BE UTF 16LE i UTF 32 UTF 32BE UTF 32LE Byla razrabotana takzhe forma predstavleniya UTF 7 dlya peredachi po semibitnym kanalam no iz za nesovmestimosti s ASCII ona ne poluchila rasprostraneniya i ne vklyuchena v standart 1 aprelya 2005 goda byli predlozheny dve shutochnye formy predstavleniya UTF 9 i UTF 18 RFC 4042 V Microsoft Windows NT i osnovannyh na nej sistemah Windows 2000 i Windows XP v osnovnom ispolzuetsya forma UTF 16LE V UNIX podobnyh operacionnyh sistemah GNU Linux BSD i Mac OS X prinyata forma UTF 8 dlya fajlov i UTF 32 ili UTF 8 dlya obrabotki simvolov v operativnoj pamyati Punycode drugaya forma kodirovaniya posledovatelnostej Unicode simvolov v tak nazyvaemye ACE posledovatelnosti kotorye sostoyat tolko iz alfavitno cifrovyh simvolov kak eto razresheno v domennyh imenah UTF 8 Osnovnaya statya UTF 8 UTF 8 predstavlenie Yunikoda obespechivayushee naibolshuyu kompaktnost i obratnuyu sovmestimost s 7 bitnoj sistemoj ASCII tekst sostoyashij tolko iz simvolov s nomerami menshe 128 pri zapisi v UTF 8 prevrashaetsya v obychnyj tekst ASCII i mozhet byt otobrazhyon lyuboj programmoj rabotayushej s ASCII i naoborot tekst zakodirovannyj 7 bitnoj ASCII mozhet byt otobrazhyon programmoj prednaznachennoj dlya raboty s UTF 8 Ostalnye simvoly Yunikoda izobrazhayutsya posledovatelnostyami dlinoj ot 2 do 4 bajt v kotoryh pervyj bajt vsegda imeet masku 11xxxxxx a ostalnye 10xxxxxx V UTF 8 ne ispolzuyutsya surrogatnye pary Format UTF 8 byl izobretyon 2 sentyabrya 1992 goda Kenom Tompsonom i Robom Pajkom i realizovan v OS Plan 9 Sejchas standart UTF 8 oficialno zakreplyon v dokumentah RFC 3629 i ISO IEC 10646 Annex D UTF 16 i UTF 32 Osnovnye stati UTF 16 i UTF 32 UTF 16 kodirovka pozvolyayushaya zapisyvat simvoly Yunikoda v diapazonah U 0000 U D7FF i U E000 U 10FFFF obshim kolichestvom 1 112 064 Pri etom kazhdyj simvol zapisyvaetsya odnim ili dvumya slovami surrogatnaya para Kodirovka UTF 16 opisana v prilozhenii Q k mezhdunarodnomu standartu ISO IEC 10646 a takzhe ej posvyashyon dokument IETF RFC 2781 pod nazvaniem UTF 16 an encoding of ISO 10646 UTF 32 sposob predstavleniya Yunikoda pri kotorom kazhdyj simvol zanimaet rovno 4 bajta Glavnoe preimushestvo UTF 32 pered kodirovkami peremennoj dliny zaklyuchaetsya v tom chto simvoly Yunikod v nej neposredstvenno indeksiruemy poetomu najti simvol po nomeru ego pozicii v fajle mozhno chrezvychajno bystro i poluchenie lyubogo simvola n j pozicii pri etom yavlyaetsya operaciej zanimayushej vsegda odinakovoe vremya Eto takzhe delaet zamenu simvolov v strokah UTF 32 ochen prostoj Naprotiv kodirovki s peremennoj dlinoj trebuyut posledovatelnogo dostupa k simvolu n j pozicii chto mozhet byt ochen zatratnoj po vremeni operaciej Glavnyj nedostatok UTF 32 eto neeffektivnoe ispolzovanie prostranstva tak kak dlya hraneniya lyubogo simvola ispolzuetsya chetyre bajta Simvoly lezhashie za predelami nulevoj bazovoj ploskosti kodovogo prostranstva redko ispolzuyutsya v bolshinstve tekstov Poetomu udvoenie v sravnenii s UTF 16 zanimaemogo strokami v UTF 32 prostranstva zachastuyu ne opravdano Poryadok bajtov Osnovnaya statya Poryadok bajtov V potoke dannyh UTF 16 mladshij bajt mozhet zapisyvatsya libo pered starshim angl UTF 16 little endian UTF 16LE libo posle starshego angl UTF 16 big endian UTF 16BE Analogichno sushestvuet dva varianta chetyryohbajtnoj kodirovki UTF 32LE i UTF 32BE Marker posledovatelnosti bajtov Osnovnaya statya Marker posledovatelnosti bajtov Dlya ukazaniya na ispolzovanie Yunikoda v nachale tekstovogo fajla ili potoka mozhet peredavatsya Marker posledovatelnosti bajtov angl byte order mark BOM simvol U FEFF nerazryvnyj probel nulevoj shiriny Po ego vidu mozhno legko razlichit kak format predstavleniya Yunikoda tak i posledovatelnost bajtov Marker posledovatelnosti bajtov mozhet prinimat sleduyushij vid UTF 8 EF BB BF UTF 16BE FE FF UTF 16LE FF FE UTF 32BE 00 00 FE FF UTF 32LE FF FE 00 00Yunikod i tradicionnye kodirovki Vnedrenie Yunikoda privelo k izmeneniyu podhoda k tradicionnym 8 bitnym kodirovkam Esli ranshe takaya kodirovka vsegda zadavalas neposredstvenno to teper ona mozhet zadavatsya tablicej sootvetstviya mezhdu dannoj kodirovkoj i Yunikodom Fakticheski pochti vse 8 bitnye kodirovki teper mozhno rassmatrivat kak formu predstavleniya nekotorogo podmnozhestva Yunikoda I eto namnogo uprostilo sozdanie programm kotorye dolzhny rabotat s mnozhestvom raznyh kodirovok teper chtoby dobavit podderzhku eshyo odnoj kodirovki nado vsego lish dobavit eshyo odnu tablicu perekodirovki simvolov v Yunikod Krome togo mnogie formaty dannyh pozvolyayut vstavlyat lyubye simvoly Yunikoda dazhe esli dokument zapisan v staroj 8 bitnoj kodirovke Naprimer v HTML mozhno ispolzovat kody s ampersandom Realizacii Bolshinstvo sovremennyh operacionnyh sistem v toj ili inoj stepeni obespechivaet podderzhku Yunikoda V operacionnyh sistemah semejstva Windows NT dlya vnutrennego predstavleniya imyon fajlov i drugih sistemnyh strok ispolzuetsya dvuhbajtovaya kodirovka UTF 16LE Sistemnye vyzovy prinimayushie strokovye parametry sushestvuyut v odnobajtnom i dvuhbajtnom variantah Podrobnee sm v state Yunikod v operacionnyh sistemah semejstva Microsoft Windows UNIX podobnye operacionnye sistemy v tom chisle GNU Linux BSD OS X ispolzuyut dlya predstavleniya Yunikoda kodirovku UTF 8 Bolshinstvo programm mozhet rabotat s UTF 8 kak s tradicionnymi odnobajtnymi kodirovkami ne obrashaya vnimaniya na to chto simvol predstavlyaetsya kak neskolko posledovatelnyh bajt Dlya raboty s otdelnymi simvolami stroki obychno perekodiruyutsya v UCS 4 tak chto kazhdomu simvolu sootvetstvuet mashinnoe slovo Odnoj iz pervyh uspeshnyh kommercheskih realizacij Yunikoda stala sreda programmirovaniya Java V nej principialno otkazalis ot 8 bitnogo predstavleniya simvolov v polzu 16 bitnogo Eto reshenie uvelichilo rashod pamyati no pozvolilo vernut v programmirovanie vazhnuyu abstrakciyu proizvolnyj odinochnyj simvol tip char V chastnosti programmist mog rabotat so strokoj kak s prostym massivom Uspeh ne byl okonchatelnym Yunikod pereros ogranichenie v 16 bit i k versii J2SE 5 0 proizvolnyj simvol snova stal zanimat peremennoe chislo edinic pamyati odin char ili dva sm surrogatnaya para Krupnye ispolzuemye v promyshlennom programmirovanii yazyki Delphi Si JavaScript soderzhat tip yunikodnaya stroka UTF 16 ili UTF 32 Lish otdelnye iz nih PHP radi proizvoditelnosti na glavnoj zadache generacii veb stranic prodolzhayut ispolzovat 8 bitnyj simvol no sposobny razbirat UTF 8 na kodovye pozicii Yunikoda Metody vvodaPoskolku ni odna raskladka klaviatury ne mozhet pozvolit vvodit vse simvoly Yunikoda odnovremenno ot operacionnyh sistem i prikladnyh programm trebuetsya podderzhka alternativnyh metodov vvoda proizvolnyh simvolov Yunikoda Microsoft Windows Osnovnaya statya Yunikod v operacionnyh sistemah semejstva Microsoft Windows Nachinaya s Windows 2000 sluzhebnaya programma Tablica simvolov charmap exe podderzhivaet simvoly Yunikoda i pozvolyaet kopirovat ih v bufer obmena Realizovana podderzhka tolko bazovoj ploskosti kody simvolov U 0000 U FFFF simvoly s kodami ot U 10000 Tablica simvolov ne otobrazhaet Pohozhaya tablica est v Microsoft Word Inogda mozhno nabrat shestnadcaterichnyj kod nazhat Alt X i kod budet zamenyon na sootvetstvuyushij simvol naprimer v WordPad Microsoft Word V redaktorah Alt X vypolnyaet i obratnoe preobrazovanie V programmah rabotayushih v srede Windows chtoby poluchit simvol Unicode nuzhno pri nazhatoj klavishe Alt nabrat desyatichnoe znachenie koda simvola na cifrovoj klaviature naprimer kombinacii Alt 0171 i Alt 0187 vyvodyat levuyu i pravuyu kavychki yolochki sootvetstvenno Alt 0151 dlinnoe tire Alt 0769 znak udareniya Alt 0133 mnogotochie i pr Macintosh V Mac OS 8 5 i bolee pozdnih versiyah podderzhivaetsya metod vvoda nazyvaemyj Unicode Hex Input Pri zazhatoj klavishe Option trebuetsya nabrat chetyryohznachnyj shestnadcaterichnyj kod trebuemogo simvola Etot metod pozvolyaet vvodit simvoly s kodami bolshimi U FFFD ispolzuya pary surrogatov takie pary operacionnoj sistemoj budut avtomaticheski zameneny na odinochnye simvoly Etot metod vvoda pered ispolzovaniem nuzhno aktivizirovat v sootvetstvuyushem razdele sistemnyh nastroek i zatem vybrat kak tekushij metod vvoda v menyu klaviatury Nachinaya s Mac OS X 10 2 sushestvuet takzhe prilozhenie Character Palette pozvolyayushee vybirat simvoly iz tablicy v kotoroj mozhno vydelyat simvoly opredelyonnogo bloka ili simvoly podderzhivaemye konkretnym shriftom GNU Linux V GNOME takzhe est utilita Tablica simvolov ranee gucharmap pozvolyayushaya otobrazhat simvoly opredelyonnogo bloka ili sistemy pisma i predostavlyayushaya vozmozhnost poiska po nazvaniyu ili opisaniyu simvola Kogda kod nuzhnogo simvola izvesten ego mozhno vvesti v sootvetstvii so standartom ISO 14755 pri zazhatyh klavishah Ctrl Shift vvesti shestnadcaterichnyj kod nachinaya s nekotoroj versii GTK vvod koda nuzhno predvarit nazhatiem klavishi U Vvodimyj shestnadcaterichnyj kod mozhet imet do 32 bit v dlinu pozvolyaya vvodit lyubye simvoly Yunikoda bez ispolzovaniya surrogatnyh par Vse prilozheniya X Window vklyuchaya GNOME i KDE podderzhivayut vvod pri pomoshi klavishi Compose Dlya klaviatur na kotoryh net otdelnoj klavishi Compose dlya etoj celi mozhno naznachit lyubuyu klavishu naprimer Caps Lock Konsol GNU Linux takzhe dopuskaet vvod simvola Yunikoda po ego kodu dlya etogo desyatichnyj kod simvola nuzhno vvesti ciframi rasshirennogo bloka klaviatury pri zazhatoj klavishe Alt Mozhno vvodit simvoly i po ih shestnadcaterichnomu kodu dlya etogo nuzhno zazhat klavishu AltGr i dlya vvoda cifr A F ispolzovat klavishi rasshirennogo bloka klaviatury ot NumLock do Enter po chasovoj strelke Podderzhivaetsya takzhe i vvod v sootvetstvii s ISO 14755 Dlya togo chtoby perechislennye sposoby mogli rabotat nuzhno vklyuchit v konsoli rezhim Yunikoda vyzovom unicode start 1 i vybrat podhodyashij shrift vyzovom setfont 8 Mozilla Firefox dlya Linux podderzhivaet vvod simvolov po ISO 14755 Problemy YunikodaV Yunikode anglijskoe a i polskoe a odin i tot zhe simvol Tochno tak zhe odnim i tem zhe simvolom no otlichayushimsya ot a latinskogo schitayutsya russkoe a i serbskoe a Takoj princip kodirovaniya ne universalen po vidimomu resheniya na vse sluchai zhizni voobshe ne mozhet sushestvovat Teksty na kitajskom korejskom i yaponskom yazykah imeyut tradicionnoe napisanie sverhu vniz nachinaya s pravogo verhnego ugla Pereklyuchenie gorizontalnogo i vertikalnogo napisaniya dlya etih yazykov ne predusmotreno v Yunikode eto dolzhno osushestvlyatsya sredstvami yazykov razmetki ili vnutrennimi mehanizmami tekstovyh processorov Nalichie ili otsutstvie v Yunikode raznyh nachertanij odnogo i togo zhe simvola v zavisimosti ot yazyka Nuzhno sledit chtoby tekst vsegda byl pravilno pomechen kak otnosyashijsya k tomu ili drugomu yazyku Tak kitajskie ieroglify mogut imet raznye nachertaniya v kitajskom yaponskom kandzi i korejskom hancha no pri etom v Yunikode oboznachayutsya odnim i tem zhe simvolom tak nazyvaemaya KKYa unifikaciya hotya uproshyonnye i polnye ieroglify vsyo zhe imeyut raznye kody Analogichno russkij i serbskij yazyki ispolzuyut raznoe nachertanie kursivnyh bukv p i t v serbskom oni vyglyadyat kak p i i t sh sm serbskij kursiv Perevod iz strochnyh bukv v zaglavnye tozhe zavisit ot yazyka Naprimer v tureckom sushestvuyut bukvy Ii i Ii takim obrazom tureckie pravila izmeneniya registra konfliktuyut s anglijskimi kotorye predpisyvayut i perevodit v I Podobnye problemy est i v drugih yazykah naprimer v kanadskom dialekte francuzskogo yazyka registr perevoditsya nemnogo ne tak kak vo Francii Dazhe s arabskimi ciframi est opredelyonnye tipografskie tonkosti cifry byvayut propisnymi i strochnymi proporcionalnymi i monoshirinnymi dlya Yunikoda raznicy mezhdu nimi net Podobnye nyuansy ostayutsya za programmnym obespecheniem Nekotorye nedostatki svyazany ne s samim Yunikodom a s vozmozhnostyami obrabotchikov teksta Fajly nelatinskogo teksta v Yunikode vsegda zanimayut bolshe mesta tak kak odin simvol kodiruetsya ne odnim bajtom kak v razlichnyh nacionalnyh kodirovkah a posledovatelnostyu bajtov isklyuchenie sostavlyaet UTF 8 dlya yazykov alfavit kotoryh ukladyvaetsya v ASCII a takzhe nalichie v tekste simvolov dvuh i bolee yazykov alfavit kotoryh ne ukladyvaetsya v ASCII Fajl shrifta vseh simvolov tablicy Yunikod zanimaet sravnitelno mnogo mesta v pamyati i trebuet bo lshih vychislitelnyh resursov chem shrift tolko odnogo nacionalnogo yazyka polzovatelya S uvelicheniem moshnosti kompyuternyh sistem i udeshevleniem pamyati i diskovogo prostranstva eta problema stanovitsya vsyo menee sushestvennoj tem ne menee ona ostayotsya aktualnoj dlya portativnyh ustrojstv naprimer dlya mobilnyh telefonov Hotya podderzhka Yunikoda realizovana v naibolee rasprostranyonnyh operacionnyh sistemah do sih por ne vsyo prikladnoe programmnoe obespechenie podderzhivaet korrektnuyu rabotu s nim V chastnosti ne vsegda obrabatyvayutsya metki poryadka bajtov BOM i ploho podderzhivayutsya diakriticheskie simvoly Problema yavlyaetsya vremennoj i est sledstvie sravnitelnoj novizny standartov Yunikoda v sravnenii s odnobajtovymi nacionalnymi kodirovkami Proizvoditelnost vseh programm obrabotki strok v tom chisle i sortirovok v BD snizhaetsya pri ispolzovanii Yunikoda vmesto odnobajtovyh kodirovok Nekotorye redkie sistemy pisma vsyo eshyo ne predstavleny dolzhnym obrazom v Yunikode Izobrazhenie dlinnyh nadstrochnyh simvolov prostirayushihsya nad neskolkimi bukvami kak naprimer v cerkovnoslavyanskom yazyke poka ne realizovano Napisanie slova Unicode Unicode odnovremenno i imya sobstvennoe ili chast imeni naprimer Unicode Consortium i imya naricatelnoe proishodyashee iz anglijskogo yazyka Na pervyj vzglyad predpochtitelnee ispolzovat napisanie Unikod V russkom yazyke uzhe est morfemy uni slova s latinskim elementom uni tradicionno perevodilis i pisalis cherez uni universalnyj unipolyarnyj unifikaciya uniforma i kod Naprotiv torgovye marki zaimstvovannye iz anglijskogo yazyka obychno peredayutsya posredstvom prakticheskoj transkripcii v kotoroj deetimologizirovannoe sochetanie bukv uni zapisyvaetsya v vide yuni Yunilever Yuniks i t p to est tochno tak zhe kak v sluchae s pobukvennymi sokrasheniyami vrode UNICEF United Nations International Children s Emergency Fund YuNISEF Na sajte Konsorciuma est specialnaya stranica gde rassmatrivayutsya problemy peredachi slova Unicode v razlichnyh yazykah i sistemah pisma Dlya russkoj kirillicy ukazan variant Yunikod V MS Windows takzhe ispolzuetsya variant Yunikod V Vikipedii na russkom yazyke ispolzuetsya variant Yunikod kak naibolee rasprostranyonnyj Sm takzheSimvoly predstavlennye v Yunikode ASCII ISO 8859 1 UTF 8 UTF 16 UTF 32 Kirillica v Yunikode Drobi v Yunikode XeTeX Windows Glyph List 4 Shirokij simvolPrimechaniyaUnicode Transcriptions angl Data obrasheniya 10 maya 2010 Arhivirovano iz originala 8 aprelya 2006 goda The Unicode Standard A Technical Introduction neopr Data obrasheniya 4 iyulya 2010 Arhivirovano iz originala 10 marta 2010 goda History of Unicode Release and Publication Dates neopr Data obrasheniya 4 iyulya 2010 Arhivirovano iz originala 10 yanvarya 2010 goda The Unicode Consortium neopr Data obrasheniya 4 iyulya 2010 Arhivirovano iz originala 27 iyunya 2010 goda Foreword neopr Data obrasheniya 4 iyulya 2010 Arhivirovano iz originala 27 iyunya 2010 goda General Structure neopr Data obrasheniya 5 iyulya 2010 Arhivirovano iz originala 27 iyunya 2010 goda European Alphabetic Scripts neopr Data obrasheniya 4 iyulya 2010 Arhivirovano iz originala 27 iyunya 2010 goda Chto takoe Unicode neopr Data obrasheniya 15 fevralya 2006 Arhivirovano 13 fevralya 2006 goda Unicode 88 neopr Data obrasheniya 8 iyulya 2010 Arhivirovano iz originala 6 sentyabrya 2017 goda Unicode and Microsoft Windows NT angl Microsoft Support Data obrasheniya 12 noyabrya 2009 Arhivirovano iz originala 26 sentyabrya 2009 goda Moving to Unicode 5 1 angl Official Google Blog Data obrasheniya 19 marta 2025 Usage Survey of Character Encodings broken down by Ranking neopr w3techs com Data obrasheniya 19 marta 2025 Unicode 16 0 0 neopr Data obrasheniya 11 sentyabrya 2024 Arhivirovano 10 sentyabrya 2024 goda History of Unicode Release and Publication Dates neopr Data obrasheniya 3 iyulya 2010 Arhivirovano 10 yanvarya 2010 goda Enumerated Versions neopr Data obrasheniya 2 iyulya 2017 Arhivirovano 25 dekabrya 2018 goda About Versions neopr Data obrasheniya 2 iyulya 2017 Arhivirovano 16 iyulya 2017 goda Unicode Consortium Copyright Terms of Use and Licenses neopr Data obrasheniya 8 sentyabrya 2017 Arhivirovano 11 sentyabrya 2017 goda Unicode 1 0 angl angl Data obrasheniya 8 dekabrya 2017 Arhivirovano 13 dekabrya 2017 goda Unicode Data 1 0 0 angl Data obrasheniya 4 dekabrya 2017 Arhivirovano 30 iyunya 2012 goda Unicode Data 1 0 1 angl Data obrasheniya 4 dekabrya 2017 Arhivirovano 21 marta 2022 goda Unicode 1 1 angl angl Data obrasheniya 8 dekabrya 2017 Arhivirovano 13 dekabrya 2017 goda Unicode Data 1995 angl Data obrasheniya 4 dekabrya 2017 Arhivirovano 21 marta 2022 goda Unicode 2 0 0 angl angl Data obrasheniya 8 dekabrya 2017 Arhivirovano 8 iyulya 2017 goda Unicode Data 2 0 14 angl Data obrasheniya 4 dekabrya 2017 Arhivirovano 21 marta 2022 goda Unicode 2 1 0 angl angl Data obrasheniya 8 dekabrya 2017 Arhivirovano 2 yanvarya 2015 goda Unicode Data 2 1 2 angl Data obrasheniya 4 dekabrya 2017 Arhivirovano 21 marta 2022 goda Unicode 3 0 0 angl angl Data obrasheniya 8 dekabrya 2017 Arhivirovano 7 iyulya 2017 goda Unicode Data 3 0 0 angl Data obrasheniya 4 dekabrya 2017 Arhivirovano 21 marta 2022 goda Unicode 3 1 0 angl angl Data obrasheniya 8 dekabrya 2017 Arhivirovano 7 iyulya 2017 goda Unicode Data 3 1 0 angl Data obrasheniya 4 dekabrya 2017 Arhivirovano 21 marta 2022 goda Unicode 3 2 0 angl angl Data obrasheniya 8 dekabrya 2017 Arhivirovano 14 iyulya 2017 goda Unicode Data 3 2 0 angl Data obrasheniya 4 dekabrya 2017 Arhivirovano 21 marta 2022 goda Unicode 4 0 0 angl angl Data obrasheniya 8 dekabrya 2017 Arhivirovano 14 iyulya 2017 goda Unicode Data 4 0 0 angl Data obrasheniya 4 dekabrya 2017 Arhivirovano 21 marta 2022 goda Unicode 4 1 0 angl angl Data obrasheniya 8 dekabrya 2017 Arhivirovano 25 maya 2021 goda Unicode Data 4 1 0 angl Data obrasheniya 4 dekabrya 2017 Arhivirovano 21 marta 2022 goda Unicode 5 0 0 angl angl 14 iyulya 2006 Data obrasheniya 8 dekabrya 2017 Arhivirovano 10 iyunya 2008 goda Unicode Data 5 0 0 angl Data obrasheniya 4 dekabrya 2017 Arhivirovano 21 marta 2022 goda Unicode 5 1 0 angl angl 4 aprelya 2008 Data obrasheniya 8 dekabrya 2017 Arhivirovano 10 aprelya 2010 goda Unicode Data 5 1 0 angl Data obrasheniya 4 dekabrya 2017 Arhivirovano 19 aprelya 2022 goda Unicode 5 2 0 angl angl 1 oktyabrya 2009 Data obrasheniya 8 dekabrya 2017 Arhivirovano 8 noyabrya 2017 goda Unicode Data 5 2 0 angl Data obrasheniya 4 dekabrya 2017 Arhivirovano 21 marta 2022 goda Unicode 6 0 0 angl angl 11 oktyabrya 2010 Data obrasheniya 8 dekabrya 2017 Arhivirovano 8 fevralya 2013 goda Unicode Data 6 0 0 angl Data obrasheniya 4 dekabrya 2017 Arhivirovano 21 marta 2022 goda Unicode 6 1 0 angl angl 31 yanvarya 2012 Data obrasheniya 8 dekabrya 2017 Arhivirovano 15 iyulya 2017 goda Unicode Data 6 1 0 angl Data obrasheniya 4 dekabrya 2017 Arhivirovano 26 marta 2022 goda Unicode 6 2 0 angl angl 26 sentyabrya 2012 Data obrasheniya 7 dekabrya 2017 Arhivirovano 12 fevralya 2019 goda Unicode Data 6 2 0 angl Data obrasheniya 4 dekabrya 2017 Arhivirovano 26 marta 2022 goda Unicode 6 3 0 angl angl 30 sentyabrya 2012 Data obrasheniya 7 dekabrya 2017 Arhivirovano 15 iyulya 2017 goda Unicode Data 6 3 0 angl Data obrasheniya 4 dekabrya 2017 Arhivirovano 7 aprelya 2022 goda Unicode 7 0 0 angl angl 16 iyunya 2014 Data obrasheniya 8 dekabrya 2017 Arhivirovano 15 aprelya 2019 goda Unicode Data 7 0 0 angl Data obrasheniya 4 dekabrya 2017 Arhivirovano 7 aprelya 2022 goda Unicode 8 0 0 angl angl 17 iyunya 2015 Data obrasheniya 8 dekabrya 2017 Arhivirovano 28 iyunya 2016 goda Unicode Data 8 0 0 angl Data obrasheniya 4 dekabrya 2017 Arhivirovano 24 marta 2021 goda Unicode 9 0 0 angl angl 21 iyunya 2016 Data obrasheniya 8 dekabrya 2017 Arhivirovano 28 fevralya 2020 goda Unicode Data 9 0 0 angl Data obrasheniya 6 dekabrya 2017 Arhivirovano 7 aprelya 2022 goda Unicode 10 0 0 angl angl 27 iyunya 2017 Data obrasheniya 8 dekabrya 2017 Arhivirovano 20 iyunya 2017 goda Unicode Data 10 0 0 angl Data obrasheniya 7 dekabrya 2017 Arhivirovano 21 noyabrya 2021 goda Unicode Data 11 0 0 angl Data obrasheniya 12 aprelya 2019 Arhivirovano 8 aprelya 2022 goda The Unicode Blog Announcing The Unicode Standard Version 11 0 neopr Data obrasheniya 5 iyunya 2019 Arhivirovano 22 iyulya 2019 goda Unicode 11 0 0 neopr Data obrasheniya 5 iyunya 2019 Arhivirovano 30 marta 2021 goda The Unicode Blog Announcing The Unicode Standard Version 12 0 neopr Data obrasheniya 5 iyunya 2019 Arhivirovano 3 iyunya 2019 goda Unicode 12 0 0 neopr Data obrasheniya 5 iyunya 2019 Arhivirovano 30 marta 2021 goda The Unicode Blog Unicode Version 12 1 released in support of the Reiwa Era neopr Data obrasheniya 5 iyunya 2019 Arhivirovano 7 maya 2019 goda Unicode 12 1 0 neopr Data obrasheniya 5 iyunya 2019 Arhivirovano 8 iyunya 2019 goda The Unicode Blog Announcing The Unicode Standard Version 13 0 neopr Data obrasheniya 15 maya 2020 Arhivirovano 26 aprelya 2022 goda Unicode 13 0 0 neopr Data obrasheniya 15 maya 2020 Arhivirovano 30 marta 2021 goda Roadmap to the TIP Tertiary Ideographic Plane neopr Data obrasheniya 12 oktyabrya 2010 Arhivirovano 29 fevralya 2020 goda Unicode Character Encoding Stability Policy neopr Data obrasheniya 2 maya 2014 Arhivirovano 15 avgusta 2012 goda FAQ Emoji amp Dingbats neopr Data obrasheniya 2 maya 2014 Arhivirovano 29 aprelya 2014 goda Guidelines for Submitting Unicode Emoji Proposals neopr Data obrasheniya 10 iyunya 2021 Arhivirovano 6 iyunya 2021 goda Normalizaciya Unicode neopr Data obrasheniya 4 avgusta 2014 Arhivirovano 8 avgusta 2014 goda GitHub FortAwesome Font Awesome The iconic SVG font and CSS toolkit neopr Data obrasheniya 27 iyunya 2020 Arhivirovano 27 iyunya 2020 goda Arhivirovannaya kopiya neopr Data obrasheniya 27 fevralya 2007 Arhivirovano iz originala 29 oktyabrya 2006 goda angl Registr v Unicode eto neprosto neopr Data obrasheniya 9 aprelya 2011 Arhivirovano 23 aprelya 2014 goda V bolshinstve shriftov dlya PK realizovany propisnye mayuskulnye monoshirinnye cifry V nekotoryh sluchayah dokument ne prostoj tekst v Yunikode mozhet zanimat sushestvenno menshe mesta chem dokument v odnobajtovoj kodirovke Naprimer esli nekaya veb stranica soderzhit primerno porovnu russkogo i grecheskogo teksta to v odnobajtovoj kodirovke pridyotsya libo russkie libo grecheskie bukvy zapisyvat ispolzuya vozmozhnosti formata dokumentov v vide kodov s ampersandom kotorye zanimayut 6 7 bajt na simvol pri ispolzovanii desyatichnyh kodov to est v srednem na bukvu pridyotsya 3 5 4 bajta v to vremya kak UTF 8 zanimaet tolko 2 bajta na grecheskuyu ili russkuyu bukvu Odin iz fajlov shriftov Arial Unicode imeet razmer 24 megabajta sushestvuet Times New Roman razmerom 120 megabajt on soderzhit kolichestvo simvolov blizkoe k 65536 SsylkiOficialnyj sajt Konsorciuma Yunikoda angl Tablica simvolov Yunikoda s nazvaniyami poisk po simvolam rus angl Poslednyaya versiya standarta Yunikod angl Svyaz Yunikoda versii 5 0 0 i ISO IEC 10646 fajl PDF angl FAQ po UTF 8 i Unicode angl