Юникод
Псевдоним(а) |
|
---|---|
Язык(и) | Посмотреть список скриптов |
Стандартный | Стандарт Юникод |
Форматы кодирования | (редко) (устаревший) |
Предшественник |
|
Юникод , официально «Стандарт Юникод» , [примечание 1] — это стандарт кодирования текста , поддерживаемый Консорциумом Unicode мира и предназначенный для поддержки использования текста, написанного во всех основных системах письма . Версия 15.1 стандарта [А] определяет 149 813 символов [3] и 161 сценарий, используемый в различных обычных, литературных, академических и технических контекстах.
Многие распространенные символы, включая цифры, знаки препинания и другие символы, унифицированы в рамках стандарта и не считаются специфичными для какой-либо конкретной системы письма. Unicode кодирует тысячи эмодзи , и Консорциум постоянно занимается их разработкой в рамках стандарта. [4] Более того, широкое распространение Unicode во многом стало причиной первоначальной популяризации эмодзи за пределами Японии . В конечном итоге Unicode способен кодировать более 1,1 миллиона символов.
Unicode в значительной степени вытеснил предыдущую среду с множеством несовместимых наборов символов , каждый из которых использовался в разных регионах и на разных компьютерных архитектурах. Юникод используется для кодирования подавляющего большинства текста в Интернете, включая большинство веб-страниц , и соответствующая поддержка Юникод стала обычным явлением при разработке современного программного обеспечения.
Юникода Репертуар символов синхронизирован с ISO/IEC 10646 , каждый из которых полностью идентичен друг другу. Однако стандарт Unicode — это больше, чем просто набор символов, в котором назначаются символы. В помощь разработчикам и дизайнерам стандарт также предоставляет диаграммы и справочные данные, а также приложения, объясняющие концепции, относящиеся к различным сценариям, и дающие рекомендации по их реализации. Темы, охватываемые этими приложениями, включают нормализацию символов , композицию и декомпозицию символов , сопоставление и направленность . [5]
Текст Unicode обрабатывается и сохраняется в виде двоичных данных с использованием одной из нескольких кодировок , которые определяют, как преобразовать абстрактные коды стандарта для символов в последовательности байтов. Сам стандарт Unicode определяет три кодировки: UTF-8 , UTF-16 и UTF-32 , хотя существует и несколько других. Из них UTF-8 с большим отрывом используется наиболее широко, отчасти из-за его обратной совместимости с ASCII .
и развитие Происхождение
Первоначально Unicode был разработан с намерением преодолеть ограничения, присутствующие во всех текстовых кодировках, разработанных до этого момента: каждая кодировка использовалась для использования в своем собственном контексте, но без особых ожиданий совместимости с какой-либо другой. Действительно, любые две выбранные кодировки часто оказывались совершенно неработоспособными при совместном использовании: текст, закодированный в одной, как мусорные символы интерпретировался другой . Большинство кодировок были разработаны только для облегчения взаимодействия между несколькими сценариями - часто в первую очередь между данным сценарием и латинскими символами - а не между большим количеством сценариев и не для того, чтобы все поддерживаемые сценарии обрабатывались единообразно.
Философия, лежащая в основе Unicode, направлена на кодирование основных символов — графем и графемоподобных единиц — а не графических различий, которые считаются просто вариантами глифов , которые вместо этого лучше всего обрабатываются с помощью шрифта , с помощью разметки или какими-либо другими способами. В особенно сложных случаях, таких как трактовка орфографических вариантов ханьских иероглифов , существуют значительные разногласия относительно того, какие различия оправдывают их собственные кодировки, а какие являются лишь графическими вариантами других иероглифов.
На самом абстрактном уровне Unicode присваивает уникальный номер, называемый кодовой точкой каждому символу . Многие вопросы визуального представления, включая размер, форму и стиль, должны решаться на усмотрение программного обеспечения, фактически отображающего текст, например веб-браузера или текстового процессора . Однако, отчасти с целью стимулирования быстрого внедрения, простота этой исходной модели со временем стала несколько более сложной, и в ходе разработки стандарта были сделаны различные прагматические уступки.
Первые 256 кодовых точек соответствуют стандарту ISO/IEC 8859-1 с целью упростить преобразование текста, уже написанного западноевропейскими алфавитами. Чтобы сохранить различия, сделанные различными устаревшими кодировками, и, следовательно, обеспечить возможность преобразования между ними и Unicode без какой-либо потери информации, многим символам, почти идентичным другим , как по внешнему виду, так и по назначению, были присвоены отдельные кодовые точки. Например, блок «Формы половинной и полной ширины» включает в себя полную семантическую копию латинского алфавита, поскольку устаревшие кодировки CJK содержали символы как «полной ширины» (соответствующие ширине символов CJK), так и «полуширинные» (соответствующие обычному латинскому алфавиту).
Премия Unicode Bulldog Award вручается людям, оказавшим влияние на развитие Unicode, в число ее лауреатов входят Тацуо Кобаяши , Томас Майло, Рузбе Пурнадер , Кен Лунде и Майкл Эверсон . [6]
История [ править ]
Истоки Unicode можно проследить до 1980-х годов, когда группа людей была связана со ( Xerox стандартом кодировки символов XCCS). [7] В 1987 году сотрудник Xerox Джо Беккер вместе с Apple сотрудниками Ли Коллинзом и Марком Дэвисом начали исследовать практические аспекты создания универсального набора символов. [8] При дополнительном вкладе Питера Фенвика и Дэйва Опстада , [7] В августе 1988 года Беккер опубликовал проект предложения «международной/многоязычной системы кодирования текстовых символов, предварительно названной Unicode». Он пояснил, что «название «Юникод» призвано означать уникальную, унифицированную, универсальную кодировку». [7]
В этом документе, озаглавленном Unicode 88 , Беккер обрисовал схему с использованием 16-битных символов: [7]
Юникод предназначен для удовлетворения потребности в работоспособной и надежной кодировке мирового текста. Юникод можно грубо описать как «широкий ASCII », расширенный до 16 бит, чтобы охватить символы всех живых языков мира. В правильно спроектированном проекте 16 бит на символ более чем достаточно для этой цели.
Это дизайнерское решение было принято на основе предположения, что только сценарии и символы «современного» использования потребуют кодирования: [7]
Unicode отдает более высокий приоритет обеспечению полезности в будущем, чем сохранению прошлых древностей. Юникод нацелен в первую очередь на символы, опубликованные в современном тексте (например, в объединении всех газет и журналов, напечатанных в мире в 1988 году), число которых, несомненно, намного меньше 2. 14 = 16 384. Помимо этих современных символов, все остальные могут быть определены как устаревшие или редкие; они лучше подходят для регистрации для частного использования, чем для перегрузки общедоступного списка общеполезных Unicode.
В начале 1989 года рабочая группа Unicode расширилась, включив в нее Кена Уистлера и Майка Кернагана из Metaphor, Карен Смит-Йошимура и Джоан Алипранд из Research Libraries Group , а также Гленна Райта из Sun Microsystems . Мишель Суйнар и Асмус Фрейтаг из Microsoft и Рик Макгоуэн из NeXT В 1990 году к группе также присоединились . К концу 1990 года большая часть работы по переназначению существующих стандартов была завершена, и окончательный обзорный проект Unicode был готов.
Консорциум Unicode был зарегистрирован в Калифорнии 3 января 1991 года. [9] первый том «Стандарта Юникод» а в октябре того же года был опубликован . Второй том, в который теперь добавлены иероглифы Хань, был опубликован в июне 1992 года.
В 1996 году в Unicode 2.0 был реализован механизм суррогатных символов, так что Unicode больше не ограничивался 16 битами. Это увеличило кодовое пространство Unicode до более чем миллиона кодовых точек, что позволило кодировать многие исторические письменности, такие как египетские иероглифы , а также тысячи редко используемых или устаревших символов, включение которых в стандарт не предполагалось. Среди этих символов есть различные редко используемые символы CJK, многие из которых в основном используются в именах собственных, что делает их гораздо более необходимыми для универсального кодирования, чем предполагала исходная архитектура Unicode. [10]
Версия 1.0 спецификации Microsoft TrueType, опубликованная в 1992 году, использовала имя «Apple Unicode» вместо «Unicode» для идентификатора платформы в таблице имен.
Консорциум Юникод [ править ]
Консорциум Unicode — это некоммерческая организация, которая координирует развитие Unicode. Полноправными членами являются большинство основных компаний, занимающихся компьютерным программным обеспечением и оборудованием (и некоторые другие), проявляющие интерес к стандартам обработки текста, включая Adobe , Apple , Google , IBM , Meta (ранее Facebook), Microsoft , Netflix и SAP . [11]
На протяжении многих лет несколько стран или правительственных учреждений были членами Консорциума Unicode. В настоящее время только Министерство пожертвований и по делам религии (Оман) является полноправным членом с правом голоса. [11]
Консорциум ставит перед собой амбициозную цель - в конечном итоге заменить существующие схемы кодирования символов на Unicode и его стандартные схемы формата преобразования Unicode (UTF), поскольку многие из существующих схем ограничены по размеру и объему и несовместимы с многоязычными средами.
Сценарии рассмотрены [ править ]
Юникод в настоящее время охватывает большинство основных систем письма , используемых сегодня. [12] [ нужен лучший источник ]
По состоянию на 2024 год [update], всего 161 скрипт [13] включены в последнюю версию Unicode (охватывающую алфавиты , абугиды и слоговые письма ), хотя все еще существуют алфавиты, которые еще не закодированы, особенно те, которые в основном используются в историческом, литургическом и академическом контекстах. Происходят и дальнейшие дополнения символов к уже закодированным сценариям, а также символов, в частности для математики и музыки (в виде нот и ритмических символов).
Комитет по дорожной карте Unicode ( Майкл Эверсон , Рик Макгоуэн, Кен Уистлер, В.С. Умамахесваран) [14] поддерживать список сценариев, которые являются кандидатами или потенциальными кандидатами на кодирование, и их предварительные назначения кодовых блоков в дорожной карте Unicode. [15] страница веб-сайта Консорциума Unicode . Для некоторых сценариев, включенных в «Дорожную карту», таких как чжурчжэньский и киданьский большой сценарий , были сделаны предложения по кодированию, и они проходят процесс утверждения. По другим сценариям, таким как «Нумидийский» и «Ронгоронго» , предложений пока не поступало, и они ждут согласия по репертуару персонажей и других деталей от участвующих сообществ пользователей.
Некоторые современные изобретенные сценарии, которые еще не включены в Unicode (например, Tengwar ) или которые не подходят для включения в Unicode из-за отсутствия реального использования (например, Klingon ), перечислены в реестре Unicode ConScript вместе с неофициальными но широко используемые присвоения кодов зон частного использования .
Существует также инициатива по созданию средневековых шрифтов Unicode, ориентированная на специальные латинские средневековые символы. Часть этих предложений уже включена в Unicode.
Инициатива сценариев по кодированию
Инициатива по кодированию сценариев, [16] проект, которым руководила Дебора Андерсон из Калифорнийского университета в Беркли, был основан в 2002 году с целью финансирования предложений по сценариям, еще не закодированным в стандарте. В последние годы этот проект стал основным источником предлагаемых дополнений к стандарту. [17]
Версии [ править ]
Консорциум Unicode вместе с ISO разработал общий репертуар после первой публикации Стандарта Unicode ISO : Unicode и универсальный набор кодированных символов (UCS) используют идентичные имена символов и кодовые точки. Однако версии Unicode отличаются от своих эквивалентов ISO по двум важным аспектам.
Хотя UCS представляет собой простую карту символов, Unicode определяет правила, алгоритмы и свойства, необходимые для обеспечения совместимости между различными платформами и языками. Таким образом, стандарт Unicode включает дополнительную информацию, охватывающую такие глубокие темы, как побитовое кодирование, сопоставление и рендеринг. Он также предоставляет полный каталог свойств символов, в том числе тех, которые необходимы для поддержки двунаправленного текста , а также визуальные диаграммы и наборы справочных данных для помощи разработчикам. Ранее стандарт Unicode продавался в печатном виде, содержащем полную базовую спецификацию, стандартные приложения, [примечание 2] и кодовые таблицы. Однако версия 5.0, опубликованная в 2006 году, была последней версией, напечатанной таким образом. Начиная с версии 5.2, можно приобрести только базовую спецификацию, опубликованную в мягкой обложке для печати по запросу. [18] С другой стороны, полный текст публикуется в виде бесплатного PDF-файла на веб-сайте Unicode.
Практическая причина использования этого метода публикации подчеркивает второе существенное различие между UCS и Unicode — частоту выпуска обновленных версий и добавления новых символов. Стандарт Unicode регулярно выпускает ежегодные расширенные версии, иногда в течение календарного года выпускается более одной версии, а в редких случаях запланированный выпуск приходится откладывать. Например, в апреле 2020 года, через месяц после публикации версии 13.0, Консорциум Unicode объявил, что изменил предполагаемую дату выпуска версии 14.0, перенеся ее на шесть месяцев назад, на сентябрь 2021 года, из-за пандемии COVID-19 .
Последняя версия Unicode 15.1 была выпущена 12 сентября 2023 года. Это незначительное обновление версии 15.0, выпущенной 13 сентября 2022 года, в которое добавлено в общей сложности 4489 новых символов, включая два новых сценария, расширение CJK Unified. Блок иероглифов и множественные дополнения к существующим блокам. Было добавлено 33 новых смайлика, таких как символ « беспроводной связи » (сети) и дополнительные цветные сердечки. [19] [20]
следующие версии стандарта Unicode На данный момент опубликованы . Версии обновлений, которые не включают никаких изменений в репертуаре персонажей, обозначаются третьим номером (например, «версия 4.0.1») и опускаются в таблице ниже. [21]
Версия | Дата | Книга | UCS издание | Общий | Подробности | |
---|---|---|---|---|---|---|
Скрипты | Персонажи [а] | |||||
1.0.0 [22] | Октябрь 1991 г. | ISBN 0-201-56788-1 (том 1) | — | 24 | 7129 | Исходные сценарии: арабский , армянский , бенгальский , бопомофо , кириллица , деванагари , грузинский , греческий и коптский , гуджарати , гурмухи , хангыль , иврит , хирагана , каннада , катакана , лаосский , латынь , малаялам , одиа , тамильский , телугу , тайский , и тибетский |
1.0.1 [23] | июнь 1992 г. | ISBN 0-201-60845-6 (т. 2) | 25 | 28 327 +21 204 −6 | Первые 20 902 унифицированных иероглифов CJK. | |
1.1 [24] | июнь 1993 г. | — | ИСО/МЭК 10646-1 :1993 | 24 | 34 168 +5963 −9 | 33 реклассифицированы как управляющие персонажи. 4306 слогов хангыля , тибетский удален. |
2.0 [25] | июль 1996 г. | ISBN 0-201-48345-9 | 25 | 38 885 +11 373 −6656 | для планов 15 и 16. зоны частного использования Исходный набор слогов хангыля удален, новый набор из 11 172 слогов хангыля добавлен в новом месте, тибетский язык снова добавлен в новом месте и с другим репертуаром символов, определен механизм суррогатных символов, выделены | |
2.1 [26] | май 1998 г. | — | 38 887 +2 | U+20AC ЗНАК ЕВРО , U+FFFC  СИМВОЛ ЗАМЕНЫ ОБЪЕКТА [26] | ||
3.0 [27] | сентябрь 1999 г. | ISBN 0-201-61633-5 | ИСО/МЭК 10646-1:2000 | 38 | 49 194 +10 307 | Чероки , геэз , кхмерский , монгольский , бирманский , огам , руны , сингальский , сирийский , таана , слоговое письмо канадских аборигенов и слоги йи , Брайля узоры |
3.1 [28] | март 2001 г. | — | ИСО/МЭК 10646-1:2000 [с] ИСО/МЭК 10646-2:2001 | 41 | 94 140 +44 946 | Дезерет , готика и старый курсив , наборы символов для западной и византийской музыки , 42 711 дополнительных унифицированных иероглифов CJK. |
3.2 [29] | март 2002 г. | 45 | 95 156 +1016 | Филиппинские сценарии ( бухид , хануно , тагальский и тагбанва ) | ||
4.0 [30] | апрель 2003 г. | ISBN 0-321-18578-1 | ИСО/МЭК 10646:2003 | 52 | 96 382 +1226 | Кипрское слоговое письмо , лимбу , линейное письмо Б , османья , шавианское , тай ле и угаритское письмо , символы гексаграммы . |
4.1 [31] | март 2005 г. | — | 59 | 97 655 +1273 | Бугийский , глаголица , харости , новый тай-лю , древнеперсидский , силхети-нагри и тифинаг , коптский, разобщенный с греческим, древнегреческие числа и музыкальные символы . Были введены первые названные последовательности символов. [32] | |
5.0 | июль 2006 г. | ISBN 0-321-48091-0 | 64 | 99 024 +1369 | Балийский , клинопись , Нко , Фагс-па , финикийский [33] | |
5.1 [34] | апрель 2008 г. | — | 75 | 100 648 +1624 | Карийский , Чам , Кая Ли , Лепча , Ликийский , Лидийский , Ол Чики , Реджанг , Саураштра , Суданский и Вай , наборы символов для Фестского диска , маджонга плитки , плитки домино , дополнения к бирманскому языку, писцовые сокращения , U+1E9E ẞ ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА SHARP S | |
5.2 [35] | октябрь 2009 г. | ISBN 978-1-936213-00-9 | 90 | 107 296 +6648 | Авестийский , Бамум , Гардинера список египетских иероглифов , императорский арамейский , письменный пехлеви , письменный парфянский , яванский , кайтхи , лису , Митей Майек , древнеюжноаравийский , древнетюркский , самаритянин , тай там и тай вьет , дополнительные унифицированные иероглифы CJK, Джамо для старого хангыля, ведического санскрита | |
6.0 [36] | октябрь 2010 г. | ISBN 978-1-936213-01-6 | ИСО/МЭК 10646:2010 | 93 | 109 384 +2088 | Батак , Брахми , Мандаик , игральных карт символы , символы транспорта и карты, алхимические символы , смайлики и эмодзи, [37] дополнительные унифицированные иероглифы CJK |
6.1 [38] | Январь 2012 г. | ISBN 978-1-936213-02-3 | ИСО/МЭК 10646:2012 | 100 | 110 116 +732 | Чакма , мероитская скоропись , мероитские иероглифы , Мяо , Шарада , Сора Сомпенг и Такри. |
6.2 [39] | Сентябрь 2012 г. | ISBN 978-1-936213-07-8 | 110 117 +1 | U+20BA ₺ ЗНАК ТУРЕЦКОЙ ЛИРЫ | ||
6.3 [40] | Сентябрь 2013 г. | ISBN 978-1-936213-08-5 | 110 122 +5 | 5 двунаправленных символов форматирования | ||
7.0 [41] | июнь 2014 г. | ISBN 978-1-936213-09-2 | 123 | 112 956 +2834 | Басса Вах , Кавказский албанец , Дуплоян , Эльбасан , Грантха , Ходжки , Худавади , Линейное письмо А , Махаджани , Манихей , Менде Кикакуи , Моди , Мро , Набатейский , Древнесеверноаравийский , Старопермский , Пахау Хмонг , Пальмирена , Пау Син Хау , Псалтирь Пехлеви , Сиддхам , Тирхута , Варанг Сити и дингбаты | |
8.0 [42] | июнь 2015 г. | ISBN 978-1-936213-10-8 | ИСО/МЭК 10646:2014 | 129 | 120 672 +7716 | Ахом , анатолийские иероглифы , хатран , мултани , старовенгерский , жестовое письмо , дополнительные унифицированные иероглифы CJK, строчные буквы для чероки, 5 модификаторов тона кожи эмодзи |
9.0 [45] | июнь 2016 г. | ISBN 978-1-936213-13-9 | 135 | 128 172 +7500 | Адлам , Бхайксуки , Марчен , Ньюа , Осейдж , Тангут , 72 смайла [46] | |
10.0 [47] | июнь 2017 г. | ISBN 978-1-936213-16-0 | ИСО/МЭК 10646:2017 | 139 | 136 690 +8518 | Площадь Занабазар , Соёмбо , Масарам Гонди , Нюшу , хентайгана , 7,494 CJK Единые иероглифы, 56 смайлов, биткойна символ |
11.0 [48] | июнь 2018 г. | ISBN 978-1-936213-19-1 | 146 | 137 374 +684 | Догра , Мтаврули грузинские заглавные буквы , Гунджала Гонди , Ханифи Рохинджа , Индийские числа Сияк , Макасар , Медефаидрин , Старые согдийские и согдийские цифры , цифры майя , 5 унифицированных иероглифов CJK, символы для сянци и звездных рейтингов , 145 смайлов | |
12.0 [49] | март 2019 г. | ISBN 978-1-936213-22-1 | 150 | 137 928 +554 | Элимайский язык , Нандинагари , Ньиакенг Пуачуэ Хмонг , Ванчо , сценарий Мяо , строчные буквы хирагана и катакана, тамильские исторические дроби и символы, лаосские буквы для пали , латинские буквы для египтологической и угаритской транслитерации, элементы управления форматом иероглифа, 61 смайлик | |
12.1 [50] | май 2019 г. | ISBN 978-1-936213-25-2 | 137 929 +1 | U+32FF ㋿ КВАДРАТНАЯ ЭРА НАЗВАНИЕ РЕЙВА | ||
13.0 [51] | март 2020 г. | ISBN 978-1-936213-26-9 | ИСО/МЭК 10646:2020 | 154 | 143 859 +5930 | Хорезмийский , дивес акуру , киданьское мелкое письмо , езидское , 4969 идеографов CJK, дополнения к арабскому алфавиту, используемые для написания хауса , волоф и других африканских языков, дополнения, используемые для написания хиндко и пенджаби в Пакистане, дополнения бопомофо, используемые для кантонского диалекта, лицензионные символы Creative Commons , графические символы для совместимости с телетекстом и домашними компьютерными системами, 55 смайлов |
14.0 [53] | сентябрь 2021 г. | ISBN 978-1-936213-29-0 | 159 | 144 697 +838 | Тото , кипро-минойский , виткуки , древнеуйгурский , танса , расширенный IPA, дополнения к арабскому алфавиту для использования в языках Африки и Ирана, Пакистана, Малайзии, Индонезии, Явы и Боснии, дополнения для почетного обращения и использования Корана, дополнения для поддержки языки Северной Америки, Филиппин, Индии и Монголии, U+20C0 ⃀ ЗНАК СОМ , известная нотная запись, 37 смайлов | |
15.0 [54] | сентябрь 2022 г. | ISBN 978-1-936213-32-0 | 161 | 149 186 +4489 | Кави и Мундари , 20 смайлов, 4192 иероглифов CJK, управляющие символы египетских иероглифов. | |
15.1 [55] | сентябрь 2023 г. | ISBN 978-1-936213-33-7 | 149 813 +627 | Дополнительные идеограммы CJK |
- ^ Общее количество графических и форматных символов, исключая символы частного использования , управляющие символы , несимволы и суррогатные кодовые точки ).
- ^
- В 2.0 добавлены поправки 5, 6 и 7.
- 2.1 добавлены два символа из поправки 18.
- ^ 3.2 добавлена Поправка 1.
- ^
- 4.1 добавлена поправка 1
- В версии 5.0 добавлена Поправка 2, а также четыре персонажа из Поправки 3.
- 5.1 добавлена поправка 4
- 5.2 добавлены Поправки 5 и 6
- ^ Плюс знак индийской рупии.
- ^
- 6.2 добавлен знак турецкой лиры
- В 6.3 добавлено пять дополнительных персонажей
- В версии 7.0 добавлены поправки 1 и 2, а также знак рубля.
- ^ Плюс Поправка 1, а также знак Лари , девять унифицированных иероглифов CJK и 41 смайлик; [43]
В версии 9.0 добавлена Поправка 2, а также символы Adlam, Newa, японского телевидения, а также 74 смайлика и символа. [44] - ^
- Плюс 56 смайликов, 285 персонажей хентайганы и 3 персонажа на площади Занабазар.
- В версии 11.0 добавлено 46 заглавных грузинских букв Мтаврули, 5 унифицированных иероглифов CJK и 66 смайлов.
- В версии 12.0 добавлено 62 дополнительных символа.
версии Прогнозируемые
Консорциум Unicode обычно выпускает новую версию стандарта Unicode один раз в год, а иногда и два раза в год. Версию 16.0, следующую основную версию, планируется опубликовать в 2024 году. Предполагается, что она будет включать шесть новых алфавитов ( Тодхри , Сунувар , Гурунг Кхема , Кират Рай , Гарай и Ол Онал ), дополнительные бирманские цифры для Шан и Мон. алфавитов , дополнительные символы для устаревших компьютеров и как минимум шесть новых смайлов. [56] [57]
Архитектура и терминология [ править ]
Кодовое пространство и кодовые точки [ править ]
Стандарт Unicode определяет кодовое пространство : [58] последовательность целых чисел, называемая кодовыми точками [59] в диапазоне от 0 до 1 114 111 , обозначаемого по стандарту как U + 0000 – U+10FFFF . [60] Кодовое пространство — это систематическое, независимое от архитектуры представление стандарта Unicode ; Фактический текст обрабатывается как двоичные данные с помощью одной из нескольких кодировок Unicode, например UTF-8 .
В этой нормативной записи двухсимвольный префикс U+
всегда предшествует написанной кодовой точке, [61] а сами кодовые точки записываются в виде шестнадцатеричных чисел. Всегда записываются не менее четырех шестнадцатеричных цифр, при необходимости перед ними добавляются ведущие нули . Например, кодовая точка U+00F7 ÷ ЗНАК ДЕЛЕНИЯ дополняется двумя ведущими нулями, но U+13254 𓉔 ЕГИПЕТСКИЙ ИЕРОГЛИФ O004 ( ) не дополняется. [62]
Всего их 2 20 + (2 16 − 2 11 ) = 1 112 064 допустимых кодовых точки в кодовом пространстве. (Это число возникает из-за ограничений кодировки символов UTF-16 , которая может кодировать 2 16 кодовые точки в диапазоне U+0000 через U+FFFF, кроме 2 11 кодовые точки в диапазоне U + D800 через U+DFFF , которые используются в качестве суррогатных пар для кодирования 2 20 кодовые точки в диапазоне U+10000 через U+10FFFF .)
Кодовые плоскости и блоки [ править ]
Кодовое пространство Юникода разделено на 17 плоскостей , пронумерованных от 0 до 16. Плоскость 0 — это базовая многоязычная плоскость (BMP), содержащая наиболее часто используемые символы. Доступ ко всем кодовым точкам в BMP осуществляется как одна кодовая единица в кодировке UTF-16 и может быть закодирована одним, двумя или тремя байтами в UTF-8. Кодовые точки в плоскостях с 1 по 16 ( дополнительные плоскости ) доступны как суррогатные пары в UTF-16 и кодируются четырьмя байтами в UTF-8 .
Внутри каждой плоскости символы распределяются внутри именованных блоков связанных символов. Размер блока всегда кратен 16 и часто кратен 128, но в остальном он произволен. Символы, необходимые для данного сценария, могут быть распределены по нескольким различным, потенциально непересекающимся блокам внутри кодового пространства.
Свойство «Общая категория» [ править ]
Каждой кодовой точке присваивается классификация, указанная в качестве свойства «Общая категория» кодовой точки . Здесь на самом верхнем уровне кодовые точки относятся к одной из следующих категорий: буква, знак, цифра, пунктуация, символ, разделитель или другое. В каждой категории каждая кодовая точка затем подразделяется на подкатегории. В большинстве случаев для адекватного описания всех характеристик любой кодовой точки необходимо использовать другие свойства.
Общая категория ( Свойство символа Юникода ) [а] | |||||
---|---|---|---|---|---|
Ценить | Категория Мажор, минор | Базовый тип [б] | Назначен персонаж [б] | Считать [с] (по состоянию на 15.1) | Примечания |
Л , Письмо; LC , Письмо в футляре (только Lu, Ll и Lt) [д] | |||||
Лу | Буква, прописная | Графика | Характер | 1,831 | |
Лл | Буква, строчная | Графика | Характер | 2,233 | |
Лейтенант | Буква, титульный регистр | Графика | Характер | 31 | Лигатуры или орграфы, содержащие заглавную часть, за которой следует строчная часть (например, υ , ψ , ϋ и ϲ ). |
Лм | Буква, модификатор | Графика | Характер | 397 | буква Модифицирующая |
Это | Письмо, другое | Графика | Характер | 132,234 | Иероглиф или буква однокорпусного алфавита |
М , Марк | |||||
Мин. | Марк, без пробелов | Графика | Характер | 1,985 | |
Мак | Марк, совмещение интервалов | Графика | Характер | 452 | |
Мне | Марк, прилагаем | Графика | Характер | 13 | |
Н , номер | |||||
Нд | Число, десятичная цифра | Графика | Характер | 680 | Все они и только они имеют числовой тип = De. [и] |
Нл | Число, буква | Графика | Характер | 236 | Цифры, состоящие из букв или буквоподобных символов (например, римские цифры ). |
Нет | Номер, другое | Графика | Характер | 915 | Например, обычные дроби , верхние и нижние индексы. |
П , Пунктуация | |||||
ПК | Пунктуация, соединитель | Графика | Характер | 10 | Включает символы подчеркивания пробелов , такие как «_», и другие символы связи пробелов . могут классифицировать их как символы «слова» В отличие от других знаков пунктуации, библиотеки регулярных выражений . [ф] |
ПД | Пунктуация, тире | Графика | Характер | 26 | Включает несколько дефиса символов |
P.S. | Пунктуация, открыть | Графика | Характер | 79 | открывающей скобки Символы |
На | Пунктуация, закрыть | Графика | Характер | 77 | Символы закрывающей скобки |
Пи | Пунктуация, начальная цитата | Графика | Характер | 12 | Открывающая кавычка . Не включает нейтральную кавычку ASCII. Может вести себя как Ps или Pe в зависимости от использования. |
Пф | Пунктуация, последняя цитата | Графика | Характер | 10 | Закрывающая кавычка. Может вести себя как Ps или Pe в зависимости от использования. |
Po | Пунктуация, прочее | Графика | Характер | 628 | |
С , Символ | |||||
см | Символ, математика | Графика | Характер | 948 | Математические символы (например, + , − , знак равно , × , ÷ , √ , ∊ , ≠ ). Не включает скобки и скобки, находящиеся в категориях Ps и Pe. Также не включает ! , * , - или / , которые, несмотря на частое использование в качестве математических операторов, в первую очередь считаются «пунктуационными». |
наук | Символ, валюта | Графика | Характер | 63 | Символы валют |
Ск | Символ, модификатор | Графика | Характер | 125 | |
Так | Символ, другое | Графика | Характер | 6,639 | |
Z , Сепаратор | |||||
Зс | Разделитель, пробел | Графика | Характер | 17 | Включает пробел, но не TAB , CR или LF , которые являются Cc. |
Зл | Разделитель, строка | Формат | Характер | 1 | Только U+2028 РАЗДЕЛИТЕЛЬ ЛИНИИ (LSEP) |
Зп | Разделитель, абзац | Формат | Характер | 1 | Только U+2029 РАЗДЕЛИТЕЛЬ ПУНКТОВ (PSEP) |
С , Другое | |||||
Копия | Другое, контроль | Контроль | Характер | 65 (никогда не изменится) [и] | Без имени, [г] <контроль> |
См. | Другое, формат | Формат | Характер | 170 | Включает мягкий дефис , объединяющие управляющие символы ( ZWNJ и ZWJ ), управляющие символы для поддержки двунаправленного текста и языковых тегов. символы |
Cs | Другое, суррогатное материнство | Суррогатное материнство | Нет (используется только в UTF-16 ) | 2048 (никогда не изменится) [и] | Без имени, [г] <суррогатная мать> |
Ко | Другое, частное использование | Частное использование | Персонаж (но без указания интерпретации) | Всего 137 468 (никогда не изменится) [и] ( 6400 в БМП , 131068 в самолетах 15–16 ) | Без имени, [г] <частное использование> |
Сп | Другое, не назначено | Нехарактерный | Нет | 66 (не изменится, если не будет расширен диапазон кодовых точек Юникода) [и] | Без имени, [г] <неперсонаж> |
Сдержанный | Нет | 824,652 | Без имени, [г] <зарезервировано> | ||
|
балла 1024 в диапазоне U + D800 – U+DBFF известны как кодовые точки с высоким суррогатным кодом и кодовые точки в диапазоне U + DC00 – U+DFFF ( 1024 кодовых точки) известны как с низким уровнем суррогатных значений кодовые точки . Кодовая точка с высоким суррогатным кодом, за которой следует кодовая точка с низким суррогатным кодом, образует суррогатную пару в UTF-16 для представления кодовых точек, превышающих У+ФФФФ . В принципе, эти кодовые точки нельзя использовать иначе, хотя на практике это правило часто игнорируется, особенно если не используется UTF-16.
Небольшой набор кодовых точек гарантированно никогда не будет присвоен персонажам, хотя третьи лица могут использовать их самостоятельно по своему усмотрению. Всего таких неперсонажей 66 : U+FDD0 – U+FDEF и две последние кодовые точки в каждой из 17 плоскостей (например, У+ФФФЕ , У+ФФФФ , U+1FFFE , U+1FFFF , ..., U+10FFFE , U+10FFFF ). Набор несимволов стабилен, и никакие новые несимволы никогда не будут определены. [63] Как и суррогаты, правило о том, что их нельзя использовать, часто игнорируется, хотя действие метки порядка байтов предполагает, что U+FFFE никогда не будет первой кодовой точкой в тексте. Исключение суррогатов и несимвольных символов оставляет 1 111 998 кодовых точек доступными для использования.
Кодовые точки частного использования считаются присвоенными, но они намеренно не имеют интерпретации, указанной в стандарте Unicode. [64] так что любой обмен такими кодовыми точками требует независимого соглашения между отправителем и получателем относительно их интерпретации. В кодовом пространстве Unicode есть три области частного использования:
- Зона частного использования: U + E000 – U+F8FF ( 6400 символов),
- Дополнительная зона частного использования-А: U + F0000 – U+FFFFD ( 65 534 символов),
- Дополнительная зона частного использования-B: U+100000 – U+10FFFD ( 65 534 символа).
Графические символы — это те, которые определены стандартом Unicode как имеющие определенную семантику, либо имеющие видимую форму глифа , либо представляющие видимое пространство. Начиная с версии Unicode 15.1, имеется 149 641 графический символ.
Символы формата — это символы, которые не имеют видимого внешнего вида, но могут влиять на внешний вид или поведение соседних символов. Например, U+200C НУЛЕВАЯ ШИРИНА, НЕ СОЕДИНЯЮЩАЯСЯ и U+200D ZERO WIDTH JOINER можно использовать для изменения поведения формирования соседних символов по умолчанию (например, для запрета лигатур или запроса формирования лигатуры). В Юникоде 15.1 имеется 172 символа формата.
65 кодовых точек, диапазоны U + 0000 – U + 001F и U + 007F – U+009F зарезервированы как коды управления , соответствующие кодам управления C0 и C1, как определено в ISO/IEC 6429 . U + 0089 ЛИНИИ ТАБУЛЯЦИИ , U + 008A ПЕРЕВОД СТРОКИ и U + 000D ВОЗВРАТ КАРЕТКИ широко используются в текстах, использующих Unicode. В результате явления, известного как моджибаке , кодовые точки C1 неправильно декодируются в соответствии с кодовой страницей Windows-1252 , ранее широко используемой в контекстах Западной Европы.
Вместе графические символы, символы формата, управляющего кода и символы частного использования называются назначенными символами . Зарезервированные кодовые точки — это те кодовые точки, которые действительны и доступны для использования, но еще не назначены. Начиная с версии Unicode 15.1, имеется 824 652 зарезервированных кодовых точки.
Абстрактные персонажи [ править ]
Набор графических и форматных символов, определенных в Юникоде, не соответствует напрямую репертуару абстрактных символов, представленных в Юникоде. Юникод кодирует символы, связывая абстрактный символ с определенной кодовой точкой. [65] Однако не все абстрактные символы кодируются как один символ Юникода, а некоторые абстрактные символы могут быть представлены в Юникоде последовательностью из двух или более символов. Например, латинская строчная буква «i» с огонёком , точкой над ней и острым ударением , которая необходима в литовском языке , представлена последовательностью символов U + 012F ; U + 0307 ; U + 0301 . Unicode поддерживает список последовательностей символов с уникальными именами для абстрактных символов, которые не закодированы напрямую в Unicode. [66]
Все назначенные персонажи имеют уникальное и неизменяемое имя, по которому они идентифицируются. Эта неизменяемость гарантируется начиная с версии 2.0 стандарта Unicode в соответствии с политикой стабильности имен. [63] В случаях, когда имя серьезно дефектно и вводит в заблуждение или содержит серьезную типографскую ошибку, может быть определен формальный псевдоним , который приложениям рекомендуется использовать вместо официального имени персонажа. Например, U + A015 ꀕ YI SYLLABLE WU имеет официальный псевдоним. YI СЛОГОВАЯ МЕТКА ИТЕРАЦИИ и U+FE18 ︘ ФОРМА ПРЕДСТАВЛЕНИЯ ДЛЯ ВЕРТИКАЛЬНОГО ПРАВОГО БЕЛОГО ЛЕНТИКУЛЯРНОГО БРАКЦЕТА ( так в оригинале ) имеет формальный псевдоним ФОРМА ПРЕДСТАВЛЕНИЯ ВЕРТИКАЛЬНОГО ПРАВОГО БЕЛОГО ЛЕНТИКУЛЯРНОГО БРЕКЕТА ET . [67]
Готовые персонажи и составные
Unicode включает механизм изменения символов, который значительно расширяет поддерживаемый набор глифов. Сюда относится использование комбинации диакритических знаков , которые могут быть добавлены пользователем после основного символа. К одному и тому же символу можно одновременно применять несколько комбинированных диакритических знаков. Юникод также содержит заранее составленные версии большинства комбинаций букв и диакритических знаков, используемых при обычном использовании. Это упрощает преобразование в устаревшие кодировки и обратно и позволяет приложениям использовать Unicode в качестве внутреннего текстового формата без необходимости реализации объединения символов. Например, é
можно представить в Юникоде как U + 0065 e ЛАТИНСКАЯ СТРОЧНАЯ БУКВА E, за которой следует U + 0301 ◌́ КОМБИНИРОВАНИЕ ОСТРОГО АКЦЕНТА ), и, что то же самое, как заранее составленный символ. U+00E9 — ЛАТИНСКАЯ СТРОЧНАЯ БУКВА E С ОСТРЫМ . Таким образом, пользователи часто имеют несколько эквивалентных способов кодирования одного и того же символа. Механизм канонической эквивалентности в стандарте Unicode обеспечивает практическую взаимозаменяемость этих эквивалентных кодировок.
Примером этого может служить корейский алфавит хангыль : Unicode предоставляет механизм для составления слогов хангыль из их отдельных подкомпонентов хангыль Джамо . Однако он также предоставляет 11 172 комбинации заранее составленных слогов, составленных из самого распространенного джамо.
Символы CJK в настоящее время имеют коды только для несоставных радикалов и заранее составленных форм. Большинство символов хань были либо намеренно составлены из более простых орфографических элементов, называемых радикалами , либо реконструированы из них , поэтому в принципе Unicode мог бы обеспечить их композицию, как это было с хангылем. Хотя это могло бы значительно сократить количество необходимых кодовых точек, а также позволить алгоритмический синтез множества произвольных новых символов, сложность этимологии символов и апостериорный характер радикальных систем добавляют огромную сложность предложению. Действительно, попытки разработать кодировки CJK на основе составления радикалов столкнулись с трудностями, связанными с тем фактом, что китайские иероглифы не разлагаются так просто и регулярно, как это делает хангыль.
Блок CJK Radicals Supplement относится к диапазону U + 2E80 – U+2EFF , а радикалы Канси относятся к U + 2F00 – U+2FDF . Блок «Последовательности идеографического описания» охватывает диапазон U + 2FF0 – U+2FFB , но стандарт Unicode предостерегает от использования его символов в качестве альтернативного представления символов, закодированных в другом месте:
Этот процесс отличается от формального кодирования идеограммы. Канонического описания незакодированных иероглифов не существует; описанным иероглифам не приписана семантика; для описанных иероглифов не определена эквивалентность. Концептуально идеографические описания больше похожи на английскую фразу «е» с острым ударением», чем на последовательность символов <U+0065, U+0301>.
Лигатуры [ править ]
Многие сценарии, в том числе арабский и деванагари , имеют особые орфографические правила, которые требуют объединения определенных комбинаций букв в специальные лигатурные формы . Правила, регулирующие формирование лигатур, могут быть довольно сложными и требуют специальных технологий формирования шрифтов, таких как ACE (арабская каллиграфическая машина от DecoType в 1980-х годах, которая использовалась для создания всех арабских примеров в печатных изданиях The Unicode Standard ), что стало доказательством концепции OpenType . (от Adobe и Microsoft), Graphite (от SIL International ) или AAT (от Apple)
В шрифты также встроены инструкции, сообщающие операционной системе, как правильно выводить различные последовательности символов. Простое решение для размещения комбинированных знаков или диакритических знаков — это присвоение знакам нулевой ширины и размещение самого глифа слева или справа от левого бокового подшипника (в зависимости от направления письма, в котором они предназначены для использования). Метка, обработанная таким образом, появится поверх любого символа, предшествующего ей, но не изменит свое положение относительно ширины или высоты базового глифа; это может быть визуально неудобно и может перекрывать некоторые глифы. Реальное наложение невозможно, но в ограниченных случаях его можно аппроксимировать (например, тайские верхние гласные и знаки тона могут изначально находиться на разной высоте). Как правило, этот подход эффективен только для моноширинных шрифтов, но может использоваться в качестве запасного метода рендеринга, когда более сложные методы не работают.
Стандартизированные подмножества [ править ]
Несколько подмножеств Unicode стандартизированы: Microsoft Windows, начиная с Windows NT 4.0, поддерживает WGL-4 с 657 символами, который считается поддерживающим все современные европейские языки, использующие латинский, греческий или кириллический алфавит. Другие стандартизированные подмножества Unicode включают многоязычные европейские подмножества: [69] МЭС-1 (только латиница; 335 символов), МЭС-2 (латиница, греческий и кириллица; 1062 символа) [70] и MES-3A и MES-3B (два больших подмножества, здесь не показаны). MES-2 включает в себя все символы MES-1 и WGL-4.
Стандарт DIN 91379 [71] определяет подмножество букв Юникода, специальных символов, а также последовательностей букв и диакритических знаков, позволяющих правильно представлять имена и упрощать обмен данными в Европе. Этот стандарт поддерживает все официальные языки всех стран Европейского Союза, а также языки немецких меньшинств и официальные языки Исландии, Лихтенштейна, Норвегии и Швейцарии. Для возможности транслитерации имен в других системах письма на латиницу согласно соответствующим стандартам ISO предусмотрены все необходимые комбинации основных букв и диакритических знаков.
Ряд | Клетки | Диапазон(ы) |
---|---|---|
00 | 20–7Е | Базовая латынь (00–7F) |
А0–ФФ | Дополнение Latin-1 (80–FF) | |
01 | 00–13, 14–15, 16–2Б, 2В–2Г, 2Е–4Д, 4Е–4Е, 50–7Е, 7Ф | Латинский расширенный-A (00–7F) |
8Ф, 92, Б7, ДЕ-ЭФ, ФА-ФФ | Расширенная латынь-B (80–FF ... ) | |
02 | 18–1Б, 1Е–1Е | Расширенная латиница-B ( ... 00–4F) |
59, 7С, 92 | Расширения IPA (50–AF) | |
BB–BD, C6, C7, C9, D6, D8–DB, DC, DD, DF, EE | Буквы-модификаторы интервала (B0–FF) | |
03 | 74–75, 7А, 7Е, 84–8А, 8С, 8Е–А1, А3–СЕ, D7, DA–E1 | Греческий (70–FF) |
04 | 00–5F, 90–91, 92–C4, C7–C8, CB–CC, D0–EB, EE–F5, F8–F9 | Кириллица (00–FF) |
1Е | 02–03, 0А–0Б, 1Е–1Е, 40–41, 56–57, 60–61, 6А–6Б, 80–85, 9Б, F2–F3 | Расширенный латинский дополнительный (00–FF) |
1F | 00–15, 18–1D, 20–45, 48–4D, 50–57, 59, 5B, 5D, 5F–7D, 80–B4, B6–C4, C6–D3, D6–DB, DD–EF, F2–F4, F6–FE | Греческий расширенный (00–FF) |
20 | 13–14, 15, 17, 18–19, 1А–1Б, 1В–1Г, 1Д, 20–22, 26, 30, 32–33, 39–3А, 3В, 3Д, 44, 4А | Общая пунктуация (00–6F) |
7Ф , 82 | Надстрочные и нижние индексы (70–9F) | |
А3–А4, А7, АС, АФ | Символы валют (A0 – CF) | |
21 | 05, 13, 16, 22, 26, 2Е | Буквальные символы (00–4F) |
5Б–5Е | Числовые формы (50–8F) | |
90–93, 94–95, А8 | Стрелы (90–FF) | |
22 | 00, 02, 03, 06, 08–09, 0F, 11–12, 15, 19–1A, 1E–1F, 27–28, 29, 2А, 2Б, 48, 59, 60–61, 64–65, 82–83, 95, 97 | Математические операторы (00–FF) |
23 | 02, 0А, 20–21, 29–2А | Разное техническое (00–FF) |
25 | 00, 02, 0С, 10, 14, 18, 1С, 24, 2С, 34, 3С, 50–6С. | Рисунок коробки (00–7F) |
80, 84, 88, 8С, 90–93 | Блочные элементы (80–9F) | |
А0–А1, AA–AC, B2, BA, BC, C4, CA–CB, CF, D8–D9, E6 | Геометрические фигуры (A0–FF) | |
26 | 3А–3В, 40, 42, 60, 63, 65–66, 6А, 6Б | Разные символы (00–FF) |
Ф0 | (01–02) | Зона частного использования (00–FF ...) |
ФБ | 01–02 | Алфавитные формы представления (00–4F) |
ФФ | ФД | Специальные предложения |
Программное обеспечение для рендеринга, которое не может правильно обработать символ Юникода, часто отображает его в виде незамкнутого прямоугольника или U+FFFD для обозначения позиции нераспознанного символа. Некоторые системы предприняли попытки предоставить больше информации о таких персонажах. от Apple Шрифт Last Resort отобразит заменяющий глиф, указывающий диапазон символов в Юникоде, а SIL International от резервный шрифт Юникода отобразит поле, показывающее шестнадцатеричное скалярное значение символа.
Отображение и кодирование [ править ]
Было определено несколько механизмов для хранения серии кодовых точек в виде серии байтов.
Юникод определяет два метода сопоставления: кодировки формата преобразования Юникода (UTF) и кодировки универсального набора кодированных символов (UCS). Кодировка отображает (возможно, подмножество) диапазон кодовых точек Юникода на последовательности значений в некотором диапазоне фиксированного размера, называемом кодовыми единицами . Все кодировки UTF сопоставляют кодовые точки с уникальной последовательностью байтов. [72] Цифры в названиях кодировок обозначают количество бит на единицу кода (для кодировок UTF) или количество байтов на единицу кода (для кодировок UCS и UTF-1 ). UTF-8 и UTF-16 — наиболее часто используемые кодировки. UCS-2 — устаревшее подмножество UTF-16; UCS-4 и UTF-32 функционально эквивалентны.
Кодировки UTF включают в себя:
- UTF-8 , который использует от одного до четырех байтов на кодовую точку и имеет максимальную совместимость с ASCII.
- UTF-16 , который использует одну или две 16-битные единицы на кодовую точку, но не может кодировать суррогаты.
- UTF-32 , который использует одну 32-битную единицу для каждой кодовой точки.
- UTF-EBCDIC , не указанный как часть стандарта Unicode , который использует от одного до пяти байтов на кодовую точку, предназначенный для максимальной совместимости с EBCDIC.
UTF-8 использует от одного до четырех байтов на кодовую точку и, будучи компактным для латинских сценариев и совместимым с ASCII, обеспечивает де-факто стандартную кодировку для обмена текстом Unicode. Он используется FreeBSD и последними дистрибутивами Linux в качестве прямой замены устаревших кодировок при общей обработке текста.
Кодировки UCS-2 и UTF-16 определяют знак порядка байтов (BOM) Unicode для использования в начале текстовых файлов, который может использоваться для определения порядка байтов (или определения порядка байтов ). Спецификация, закодированная как U+FEFF ZERO WIDTH NO-BREAK SPACE обладает важным свойством однозначности при переупорядочении байтов, независимо от используемой кодировки Unicode; U+FFFE (результат перестановки байтов U+FEFF ) не соответствует юридическому характеру и U+FEFF в местах, отличных от начала текста, передает неразрывный пробел нулевой ширины.
Тот же символ, преобразованный в UTF-8, становится последовательностью байтов. EF BB BF
. Стандарт Unicode допускает, что спецификация «может служить подписью для текста в кодировке UTF-8, где набор символов не помечен». [73] Некоторые разработчики программного обеспечения приняли его для других кодировок, включая UTF-8, пытаясь отличить UTF-8 от локальных 8-битных кодовых страниц . Однако RFC 3629 , стандарт UTF-8, рекомендует запрещать знаки порядка байтов в протоколах, использующих UTF-8, но обсуждает случаи, когда это может быть невозможно. Кроме того, большое ограничение на возможные шаблоны в UTF-8 (например, не может быть одиночных байтов с установленным старшим битом) означает, что должна быть возможность отличить UTF-8 от других кодировок символов, не полагаясь на спецификацию.
В UTF-32 и UCS-4 одна 32-битная кодовая единица служит довольно прямым представлением кодовой точки любого символа (хотя порядок байтов, который варьируется на разных платформах, влияет на то, как кодовая единица проявляется в виде последовательности байтов). В других кодировках каждая кодовая точка может быть представлена переменным количеством кодовых единиц. UTF-32 широко используется в качестве внутреннего представления текста в программах (в отличие от хранимого или передаваемого текста), поскольку каждая операционная система Unix, использующая компиляторы gcc для создания программного обеспечения, использует его в качестве стандартной кодировки « широких символов ». Некоторые языки программирования, такие как Seed7 , используют UTF-32 в качестве внутреннего представления строк и символов. Последние версии языка программирования Python (начиная с версии 2.2) также могут быть настроены на использование UTF-32 в качестве представления строк Unicode, эффективно распространяя такую кодировку в высокого уровня программном обеспечении .
Punycode , еще одна форма кодирования, позволяет кодировать строки Unicode в ограниченный набор символов, поддерживаемый системой ASCII (DNS) на основе доменных имен . Кодировка используется как часть IDNA — системы, позволяющей использовать интернационализированные доменные имена во всех сценариях, поддерживаемых Unicode. Ранее и сейчас исторические предложения включают UTF-5 и UTF-6 .
GB18030 — еще одна форма кодировки Unicode, разработанная Управлением по стандартизации Китая . Это официальный набор символов Китайской Народной Республики (КНР). BOCU-1 и SCSU — схемы сжатия Unicode. В первоапрельском RFC 2005 года указаны две пародийные кодировки UTF: UTF-9 и UTF-18 .
Принятие [ править ]
Юникод в форме UTF-8 является наиболее распространенной кодировкой во Всемирной паутине с 2008 года. [74] Он получил почти универсальное распространение, и большая часть контента, отличного от UTF-8, встречается в других кодировках Unicode, например UTF-16 . По состоянию на 2024 год [update], UTF-8 составляет в среднем 97,8% всех веб-страниц (и 987 из 1000 веб-страниц с самым высоким рейтингом). [75] Хотя на многих страницах для отображения контента используются только символы ASCII , UTF-8 был разработан с использованием 8-битного ASCII в качестве подмножества, и теперь почти ни один веб-сайт не заявляет, что использует только кодировку ASCII вместо UTF-8. [76] Более трети отслеживаемых языков на 100% используют UTF-8.
Все интернет-протоколы поддерживаются Инженерной группой Интернета , например FTP , [77] потребовалась поддержка UTF-8 с момента публикации RFC 2277 1998 года, в котором указано, что все протоколы IETF «ДОЛЖНЫ иметь возможность использовать кодировку UTF-8». [78]
Операционные системы [ править ]
Юникод стал доминирующей схемой внутренней обработки и хранения текста. Хотя большая часть текста по-прежнему хранится в устаревших кодировках, Unicode используется почти исключительно для создания новых систем обработки информации. Первые пользователи, как правило, использовали UCS-2 (двухбайтовый устаревший предшественник UTF-16 фиксированной длины), а затем перешли на UTF-16 (текущий стандарт переменной длины), поскольку это был наименее разрушительный способ добавить поддержку символы, отличные от BMP. Наиболее известной такой системой является Windows NT (и ее потомки 2000 , XP , Vista , 7 , 8 , 10 и 11 ), которая использует UTF-16 в качестве единственной внутренней кодировки символов. Среды байт-кода Java и .NET , macOS и KDE также используют его для внутреннего представления. Частичную поддержку Unicode можно установить в Windows 9x через Microsoft Layer for Unicode .
UTF-8 (первоначально разработанный для Plan 9 ) [79] стала основной кодировкой памяти в большинстве Unix-подобных операционных систем (хотя некоторые библиотеки также используют другие), поскольку она является относительно простой заменой традиционных расширенных наборов символов ASCII. UTF-8 также является наиболее распространенной кодировкой Unicode, используемой в HTML- документах во Всемирной паутине .
Многоязычные механизмы рендеринга текста, использующие Unicode, включают Uniscribe и DirectWrite для Microsoft Windows, ATSUI и Core Text для macOS, а также Pango для GTK+ и рабочего стола GNOME .
Методы ввода [ править ]
Поскольку раскладки клавиатуры не могут иметь простые комбинации клавиш для всех символов, некоторые операционные системы предоставляют альтернативные методы ввода, которые обеспечивают доступ ко всему набору символов.
ИСО/МЭК 14755 , [80] который стандартизирует методы ввода символов Юникода из их кодовых точек, определяет несколько методов. Существует базовый метод , в котором за начальной последовательностью следует шестнадцатеричное представление кодовой точки и конечная последовательность . Также указан метод ввода с выбором экрана , при котором символы перечислены в таблице на экране, например, в программе карты символов.
Онлайн-инструменты для поиска кодовой точки известного символа включают Unicode Lookup. [81] Джонатан Хедли и Shapecatcher [82] Бенджамин Милд. При поиске в Юникоде вводится ключ поиска (например, «дроби»), и возвращается список соответствующих символов с их кодовыми точками. В Shapecatcher, на основе контекста Shape , персонаж рисуется в рамке, и возвращается список символов, аппроксимирующих рисунок, с их кодовыми точками.
Электронная почта [ изменить ]
MIME определяет два разных механизма кодирования символов, отличных от ASCII, в электронной почте, в зависимости от того, находятся ли символы в заголовках электронной почты (например, «Тема:») или в текстовом теле сообщения; в обоих случаях идентифицируется исходный набор символов, а также кодировка передачи. Для передачи по электронной почте в формате Unicode рекомендуется использовать набор символов UTF-8 и кодировку передачи Base64 или Quoted-printable , в зависимости от того, состоит ли большая часть сообщения из символов ASCII . Детали двух разных механизмов указаны в стандартах MIME и обычно скрыты от пользователей почтового программного обеспечения.
IETF определил [83] [84] структуру интернационализированной электронной почты с использованием UTF-8 и обновил [85] [86] [87] [88] несколько протоколов в соответствии с этой структурой.
Внедрение Unicode в электронной почте происходит очень медленно. [ нужна ссылка ] Некоторый восточноазиатский текст по-прежнему закодирован в таких кодировках, как ISO-2022 , а некоторые устройства, например мобильные телефоны, [ нужна ссылка ] все еще не может правильно обрабатывать данные Unicode. Однако поддержка улучшается. Многие крупные провайдеры бесплатной почты, такие как Yahoo! Mail , Gmail и Outlook.com поддерживают его.
Интернет [ править ]
Во всех рекомендациях W3C используется Юникод, в качестве набора символов документа начиная с HTML 4.0. Веб-браузеры уже много лет поддерживают Unicode, особенно UTF-8. Раньше возникали проблемы с отображением, возникающие в основном из-за проблем, связанных со шрифтами ; например, версия Microsoft Internet Explorer 6 и более ранние версии не отображали многие кодовые точки, если явно не было указано использовать шрифт, который их содержит. [89]
Хотя правила синтаксиса могут влиять на порядок, в котором разрешено появление символов, документы XML (включая XHTML ) по определению [90] содержат символы большинства кодовых точек Юникода, за исключением:
- ФФФЕ или ФФФФ.
- большинство управляющих кодов C0 ,
- постоянно неназначенные кодовые точки D800–DFFF,
Символы HTML проявляются либо непосредственно в виде байтов в соответствии с кодировкой документа, если кодировка их поддерживает, либо пользователи могут записывать их в виде числовых ссылок на символы на основе кодовой точки символа в Юникоде. Например, ссылки Δ
, Й
, ק
, م
, ๗
, あ
, 叶
, 葉
, и 말
(или те же числовые значения, выраженные в шестнадцатеричном виде, с &#x
в качестве префикса) должен отображаться во всех браузерах как Δ, Й, ק, م, ๗, あ, 叶, 葉 и 말.
При указании URI , например URL-адресов в HTTP- запросах, символы, отличные от ASCII, должны быть закодированы в процентах .
Шрифты [ править ]
Unicode в принципе не занимается шрифтами как таковыми , рассматривая их как вариант реализации. [91] Любой символ может иметь множество аллографов : от более распространенных жирных, курсивных и базовых букв до сложных декоративных стилей. Шрифт является «совместимым с Unicode», если к глифам шрифта можно получить доступ с помощью кодовых точек, определенных в стандарте Unicode . [92] Стандарт не определяет минимальное количество символов, которое должно быть включено в шрифт; некоторые шрифты имеют довольно небольшой репертуар.
Бесплатные и розничные шрифты на основе Unicode широко доступны, поскольку TrueType и OpenType поддерживают Unicode (и формат веб-открытых шрифтов (WOFF и WOFF2 ) основан на них). Эти форматы шрифтов сопоставляют кодовые точки Unicode с глифами, но файлы шрифтов OpenType и TrueType ограничены 65 535 глифами. Файлы коллекций предоставляют механизм «режим пробела» для преодоления этого ограничения в одном файле шрифта. (Однако каждый шрифт в коллекции по-прежнему имеет ограничение в 65 535.) Файл коллекции TrueType обычно имеет расширение «.ttc».
На рынке существуют тысячи шрифтов , но менее дюжины шрифтов, иногда называемых шрифтами «пан-Юникода», пытаются поддерживать большую часть набора символов Юникода. на основе Юникода Вместо этого шрифты обычно ориентированы на поддержку только базового ASCII и определенных сценариев или наборов символов или символов. Несколько причин оправдывают этот подход: приложениям и документам редко требуется отображать символы более чем одной или двух систем письма; шрифты, как правило, требуют ресурсов в вычислительной среде; а операционные системы и приложения демонстрируют возрастающий уровень интеллекта в отношении получения информации о глифах из отдельных файлов шрифтов по мере необходимости, т. е. замены шрифта . Более того, разработка согласованного набора инструкций рендеринга для десятков тысяч глифов представляет собой монументальную задачу; такое предприятие проходит точку убывающей отдачи для большинства шрифтов.
Новые строки [ править ]
Unicode частично решает проблему новой строки , возникающую при попытке прочитать текстовый файл на разных платформах. Юникод определяет большое количество символов , которые соответствующие приложения должны распознавать как ограничители строк.
Что касается новой строки, Unicode представил U+2028 РАЗДЕЛИТЕЛЬ СТРОК и U+2029 РАЗДЕЛИТЕЛЬ АБЗАЦОВ . Это была попытка предоставить решение Unicode для семантического кодирования абзацев и строк, потенциально заменив все различные платформенные решения. При этом Unicode действительно позволяет обойти исторические решения, зависящие от платформы. Тем не менее, лишь немногие решения Unicode, если таковые имеются, приняли эти разделители строк и абзацев Unicode в качестве единственных канонических символов окончания строки. Однако общий подход к решению этой проблемы заключается в нормализации новой строки. Это достигается с помощью текстовой системы Cocoa в Mac OS X, а также с помощью рекомендаций W3C XML и HTML. В этом подходе каждый возможный символ новой строки преобразуется внутри в общий символ новой строки (какой из них не имеет особого значения, поскольку это внутренняя операция только для рендеринга). Другими словами, текстовая система может правильно интерпретировать символ как новую строку, независимо от фактической кодировки ввода.
Проблемы [ править ]
Объединение персонажей [ править ]
Объединение Хань [ править ]
Группе идеографических исследований (IRG) поручено консультировать Консорциум и ISO по вопросам унификации Хань, или Унихан, особенно по дальнейшему добавлению в репертуар унифицированных и совместимых иероглифов CJK. В состав IRG входят эксперты из каждого региона, где исторически использовались китайские иероглифы . Однако, несмотря на обсуждения в комитете, объединение Хань неизменно оставалось одним из наиболее спорных аспектов стандарта Unicode с момента создания проекта. [93]
Существующие стандарты набора символов, такие как японский JIS X 0208 (закодированный Shift JIS ), определяют критерии унификации, то есть правила определения того, когда вариант китайского иероглифа следует считать разницей в почерке/шрифте (и, следовательно, унифицированным), а не разницей в написании ( кодироваться отдельно). Модель символов Unicode для символов CJK была основана на критериях унификации, используемых в JIS X 0208, а также на критериях, разработанных Ассоциацией общего китайского кода в Китае. [94] Из-за принципа стандарта кодирования семантических, а не стилистических вариантов, Unicode подвергся критике за то, что он не присваивал кодовые точки определенным редким и архаичным вариантам кандзи , что, возможно, усложняло обработку древних и необычных японских имен. Поскольку особое внимание уделяется китайскому, японскому и корейскому языкам, имеющим много общих символов, ханьское объединение также иногда воспринимается как обращение к этим трем как к одному и тому же. [95]
Существуют менее часто используемые альтернативные кодировки, часто предшествующие Unicode, с моделями символов, отличающимися от этой парадигмы, направленные на сохранение различных стилистических различий между региональными и / или нестандартными формами символов. Одним из примеров является код TRON , который некоторые пользователи предпочитают для обработки исторических японских текстов, но он не получил широкого распространения среди японской общественности. Другим примером является кодировка CCCII, принятая библиотечными системами Гонконга , Тайваня и США . У них есть свои недостатки в общем использовании, что приводит к тому, что кодировка Big5 (введенная в 1984 году, через четыре года после CCCII) стала более распространенной, чем CCCII, за пределами библиотечных систем. [96] Хотя работа в Apple, основанная на тезаурусе CJK Research Libraries Group , который использовался для поддержки варианта EACC CCCII, была одним из прямых предшественников набора Unihan Unicode , Unicode принял модель унификации в стиле JIS. [94]
Самая ранняя версия Unicode имела репертуар менее 21 000 символов хань, в основном ограниченный теми, которые относительно распространены в современном использовании. Начиная с версии 15.1, стандарт теперь кодирует более 97 000 символов хань, и продолжается работа по добавлению еще тысяч — в основном исторических и диалектных вариантов символов, используемых во всей синосфере .
Современные шрифты предоставляют средства для решения некоторых практических проблем, связанных с изображением единых ханьских символов с помощью различных региональных графических представлений. 'locl' Таблица OpenType позволяет средству визуализации выбирать разные глифы для каждой кодовой точки на основе языкового стандарта текста. [97] Последовательности вариантов Юникода также могут предоставлять внутритекстовые аннотации для желаемого выбора глифа; для этого требуется регистрация конкретного варианта в базе данных идеографических вариаций .
Курсив или курсив кириллицы [ править ]
Если соответствующие глифы для символов одного и того же алфавита различаются только курсивом, Unicode в целом унифицировал их, как можно увидеть при сравнении набора из семи символов курсива, обычно встречающихся в русском, традиционном болгарском, македонском и Сербский текст справа означает, что различия отображаются с помощью технологии интеллектуальных шрифтов или изменения шрифтов вручную. Используется тот же метод OpenType «locl». [98]
Локализованные пары случаев [ править ]
Для использования в турецком алфавите и азербайджанском алфавите Юникод включает отдельную без точки строчную букву I (ı) и прописную букву I с точкой ( İ ). без точек используются обычные буквы ASCII Однако для строчных букв I с точками и прописных букв I , что соответствует тому, как они обрабатываются в более раннем стандарте ISO 8859-9 . Таким образом, при сравнении без учета регистра для этих языков должны использоваться другие правила, чем при сравнении без учета регистра для других языков, использующих латинский алфавит. [99]
Напротив, исландские eth (ð) , D с перемычкой (đ) и ретрофлекс D (ɖ) , которые обычно [примечание 3] выглядят одинаково в верхнем регистре (Đ), имеют противоположную обработку и кодируются отдельно в обоих регистрах букв (в отличие от более раннего ISO 6937 , который унифицирует формы верхнего регистра). Хотя он позволяет выполнять сравнение без учета регистра без необходимости знания языка текста, у этого подхода также есть проблемы, требующие принятия мер безопасности, связанных с атаками на гомоглифы . [100]
Диакритические знаки в нижнем регистре I [ править ]
Ожидается ли, что строчная буква I сохранит свое название при применении диакритического знака, также зависит от местных соглашений.
Безопасность [ править ]
В Unicode имеется большое количество гомоглифов , многие из которых очень похожи или идентичны буквам ASCII. Их замена может привести к тому, что идентификатор или URL-адрес будет выглядеть правильно, но будет вести в другое место, чем ожидалось. [101] Кроме того, гомоглифы также можно использовать для манипулирования выводами систем обработки естественного языка (NLP) . [102] Для смягчения последствий необходимо запретить использование этих символов, отобразить их по-другому или потребовать, чтобы они разрешались в один и тот же идентификатор; [103] все это сложно из-за огромного и постоянно меняющегося набора персонажей. [104] [105]
, выпустили рекомендации по безопасности В 2021 году два исследователя, один из Кембриджского университета , а другой из Эдинбургского университета , в которых они утверждают, что метки BiDi могут использоваться для того, чтобы заставить большие участки кода делать что-то, отличное от того, чем они кажутся. делать. Проблема получила название « Источник трояна ». [106] В ответ редакторы кода начали выделять метки, указывающие на принудительное изменение направления текста. [107]
Сопоставление с устаревшими наборами символов [ править ]
«кодовая точка за кодовой точкой» Юникод был разработан для обеспечения двустороннего преобразования формата в любую ранее существовавшую кодировку символов и обратно, чтобы текстовые файлы в старых наборах символов можно было преобразовать в Юникод, а затем обратно и получить тот же файл. без использования контекстно-зависимой интерпретации. Это означает, что в Юникоде существуют противоречивые устаревшие архитектуры, такие как сочетание диакритических знаков и заранее составленных символов , что дает более одного метода представления некоторого текста. Это наиболее ярко выражено в трех различных формах кодировки корейского хангыля . Начиная с версии 3.0, любые заранее составленные символы, которые могут быть представлены комбинированной последовательностью уже существующих символов, больше не могут быть добавлены в стандарт, чтобы сохранить совместимость программного обеспечения, использующего разные версии Unicode.
инъективные Между символами существующих устаревших наборов символов и символами Юникода необходимо обеспечить сопоставления, чтобы облегчить преобразование в Юникод и обеспечить совместимость с устаревшим программным обеспечением. Отсутствие согласованности в различных сопоставлениях между более ранними японскими кодировками, такими как Shift-JIS или EUC-JP и Unicode, привело к несоответствию двустороннего преобразования формата , особенно сопоставлению символа JIS X 0208 '~' (1-33, WAVE DASH). , широко используемый в устаревших данных баз данных, либо U+FF5E ~ ПОЛНАЯ ШИРИНА ТИЛЬДА (в Microsoft Windows ) или U+301C 〜 WAVE DASH (другие поставщики). [108]
Некоторые японские программисты возражали против Unicode, поскольку он требует от них разделения использования U+005C \ ОБРАТНАЯ СОЛИДУС (обратная косая черта) и U+00A5 ¥ YEN SIGN , который был сопоставлен с 0x5C в JIS X 0201, и существует много устаревшего кода с этим использованием. [109] (Эта кодировка также заменяет тильду '~' 0x7E на макрон '¯', теперь 0xAF.) Разделение этих символов существует в ISO 8859-1 задолго до Unicode.
Индийские сценарии [ править ]
Индийским сценариям, таким как тамильский и деванагари , выделено только 128 кодовых точек, что соответствует стандарту ISCII . Правильная отрисовка индийского текста Юникода требует преобразования сохраненных символов логического порядка в визуальный порядок и формирования лигатур (также известных как конъюнкты) из компонентов. Некоторые местные ученые выступали за присвоение этим лигатурам кодовых точек Юникода, что противоречит практике других систем письма, хотя Юникод содержит некоторые арабские и другие лигатуры только для целей обратной совместимости. [110] [111] [112] Кодирование любых новых лигатур в Юникоде не произойдет отчасти потому, что набор лигатур зависит от шрифта, а Юникод — это кодировка, независимая от вариантов шрифта. Такая же проблема возникла с тибетским письмом в 2003 году, когда Управление по стандартизации Китая предложило кодировать 956 заранее составленных тибетских слогов. [113] но они были отклонены для кодирования соответствующим комитетом ISO ( ISO/IEC JTC 1/SC 2 ). [114]
Поддержка тайского алфавита подвергалась критике за порядок расположения тайских символов. Гласные เ, แ, โ, ใ, ไ, которые пишутся слева от предыдущей согласной, располагаются в визуальном, а не фонетическом порядке, в отличие от представлений других индийских алфавитов в Юникоде. Это осложнение связано с тем, что Unicode унаследовал тайский промышленный стандарт 620 , который работал таким же образом и был способом, которым тайский язык всегда писался на клавиатуре. Эта проблема с упорядочением немного усложняет процесс сопоставления Юникода, требуя поиска в таблице для изменения порядка тайских символов для сопоставления. [95] Даже если бы Unicode принял кодировку в соответствии с порядком произнесения, все равно было бы проблематично сопоставлять слова в словарном порядке. Например, слово แสดง [sa dɛːŋ] «выполнять» начинается с группы согласных «สด» (с присущей гласной согласным «ส»), гласная แ- в устной речи идет после ด, но в словаре, слово сопоставляется так, как оно написано, с гласной, следующей за ส.
Объединение персонажей [ править ]
Символы с диакритическими знаками обычно могут быть представлены либо как один заранее составленный символ, либо как разложенная последовательность базовой буквы плюс один или несколько знаков без пробелов. Например, ḗ (предварительная е с макроном и акутом выше) и ḗ (е, за которым следует комбинированный макрон выше и комбинированный акут выше) должны отображаться одинаково, оба появляются как е с макроном (◌̄) и акутом (◌ ́), но на практике их внешний вид может различаться в зависимости от того, какой механизм рендеринга и шрифты используются для отображения символов. Аналогично, точки , необходимые при латинизации индийских языков , часто расставляются неправильно. [ нужна ссылка ] Символы Юникода, которые сопоставляются с заранее составленными глифами, можно использовать во многих случаях, что позволяет избежать проблемы, но если заранее составленный символ не был закодирован, проблему часто можно решить с помощью специального шрифта Юникода, такого как Charis SIL , который использует Graphite , OpenType ( 'gsub') или технологии AAT для расширенных функций рендеринга.
Аномалии [ править ]
Стандарт Unicode наложил правила, призванные гарантировать стабильность. [115] В зависимости от строгости правила изменение может быть запрещено или разрешено. Например, «имя», присвоенное кодовой точке, не может и не будет меняться. Но свойство «script» является более гибким по собственным правилам Unicode. В версии 2.0 Unicode изменил многие «имена» кодовых точек по сравнению с версией 1. В то же время Unicode заявил, что с этого момента присвоенное кодовой точке имя никогда не будет меняться. Это означает, что при публикации ошибок эти ошибки невозможно исправить, даже если они незначительны (как это произошло в одном случае с орфографией). БРАКЦЕТ для СКОБКА в имени персонажа). В 2006 году был впервые опубликован список аномалий в именах персонажей, и по состоянию на июнь 2021 года насчитывалось 104 персонажа с выявленными проблемами. [116] например:
- U+034F ͏ ОБЪЕДИНЕНИЕ ГРАФЕМ : Не соединяет графемы. [116]
- U+2118 ℘ ЗАГЛАВНАЯ P : Это маленькая буква. Столица U+1D4AB 𝒫 МАТЕМАТИЧЕСКАЯ ЗАГЛАВНАЯ ПИСЬМО P . [117]
- U+A015 ꀕ YI SYLLABLE WU : Это не слог И, а знак итерации И.
- U+FE18 ︘ ФОРМА ПРЕДСТАВЛЕНИЯ ДЛЯ ВЕРТИКАЛЬНОГО ПРАВОГО БЕЛОГО ЛЕНТИКУЛЯРНОГО БРАКЦЕТА : скобка написана неправильно. [118] (Орфографические ошибки устраняются путем использования псевдонимов в Юникоде .)
Хотя Unicode определяет указатель (имя) сценария как « Phags_Pa ", в именах персонажей этого скрипта добавляется дефис: U+A840 ꡀ PHAGS-PA БУКВА И . [119] [120] Это, однако, не аномалия, а правило: в обозначениях шрифтов дефисы заменяются подчеркиваниями. [119]
См. также [ править ]
- Сравнение кодировок Unicode
- Международные компоненты для Unicode (ICU), теперь ICU- TC является частью Unicode.
- Список двоичных кодов
- Список символов Юникода
- Список ссылок на символьные сущности XML и HTML
- Набор многобайтовых символов Lotus (LMBCS), параллельная разработка с аналогичными целями.
- Шрифты Unicode с открытым исходным кодом
- Религиозные и политические символы в Юникоде.
- Стандарты, связанные с Unicode
- Символы Юникода
- Универсальный набор кодированных символов
Примечания [ править ]
- ^ Иногда сокращается как TUS . [1] [2]
- ^ «Приложение к стандарту Unicode (UAX) является неотъемлемой частью стандарта Unicode , но публикуется как отдельный документ». [1]
- ^ В редких случаях исландская буква eth в верхнем регистре вместо этого может быть написана островным стилем (Ꝺ) с перекладиной, расположенной на основе, особенно если ее необходимо отличить от ретрофлексной буквы D в верхнем регистре (см. Африканский справочный алфавит ).
Ссылки [ править ]
- ^ Стандарт Юникод, версия 15.1.0 . Южный Сан-Франциско, Калифорния: Консорциум Unicode. 2023. ISBN 978-1-936213-33-7 .
- ^ «Технический отчет Unicode № 28: Unicode 3.2» . Консорциум Юникод . 27 марта 2002 г. Проверено 23 июня 2022 г.
- ^ Дженкинс, Джон Х. (26 августа 2021 г.). «Стандартное приложение Unicode № 45: Идеограммы U-источника» . Консорциум Юникод . Проверено 23 июня 2022 г.
2.2 Исходное поле
- ^ «Подсчет символов Юникода V15.1» . Юникод . Архивировано из оригинала 9 октября 2023 г. Проверено 12 сентября 2023 г.
- ^ «Emoji Counts, v15.1» . Юникод . Архивировано из оригинала 28 сентября 2023 г. Проверено 12 сентября 2023 г.
- ^ «Стандарт Unicode: техническое введение» . Проверено 16 марта 2010 г.
- ^ «Премия Юникода Бульдога» . Юникод . Архивировано из оригинала 11 ноября 2023 г.
- ↑ Перейти обратно: Перейти обратно: а б с д и Беккер, Джозеф Д. (10 сентября 1998 г.) [29 августа 1988 г.]. «Юникод 88» (PDF) . Консорциум Юникод . Архивировано (PDF) из оригинала 25 ноября 2016 г. Проверено 25 октября 2016 г.
В 1978 году первоначальное предложение о наборе «Универсальных знаков» было сделано Бобом Бельвиллем из Xerox PARC . Многие люди внесли свои идеи в разработку новой конструкции кодирования. Начиная с 1980 года, эти усилия превратились в стандарт кодировки символов Xerox (XCCS) настоящего автора, многоязычную кодировку, которая поддерживается Xerox в качестве внутреннего корпоративного стандарта с 1982 года благодаря усилиям Эда Смуры, Рона Пеллара и других. .
Юникод возник в результате восьмилетнего опыта работы с XCCS. Его фундаментальные отличия от XCCS были предложены Питером Фенвиком и Дэйвом Опстадом (чистые 16-битные коды) и Ли Коллинзом (унификация идеографических символов). Unicode сохраняет многие особенности XCCS, полезность которых была доказана на протяжении многих лет в продуктах международной линии связи многоязычных систем. - ^ «Краткое повествование» . Юникод . 31 августа 2006 г. Проверено 15 марта 2010 г.
- ^ «История выпуска Юникода и даты публикации» . Юникод . Проверено 20 марта 2023 г.
- ^ Сирл, Стивен Дж. «Возвращение к Юникоду» . Проверено 18 января 2013 г.
- ↑ Перейти обратно: Перейти обратно: а б «Члены консорциума Unicode» . Проверено 12 февраля 2024 г.
- ^ «Часто задаваемые вопросы по Юникоду» . Проверено 2 апреля 2020 г.
- ^ «Поддерживаемые сценарии» . Юникод . Проверено 16 сентября 2022 г.
- ^ «Дорожная карта БМП» . Консорциум Юникод . Проверено 30 июля 2018 г.
- ^ «Дорожные карты для Unicode» . Юникод . Архивировано из оригинала 8 декабря 2023 г.
- ^ «инициатива по кодированию сценариев» . Беркли Лингвистика . Архивировано из оригинала 25 марта 2023 г.
- ^ «Об инициативе по кодированию сценариев» . Консорциум Юникод . Проверено 4 июня 2012 г.
- ^ «Доступна версия Unicode 6.1 в мягкой обложке» . анонсы_at_unicode.org . Проверено 30 мая 2012 г.
- ^ «Юникод 15.0.0» . Юникод . Проверено 12 сентября 2023 г.
- ^ «Emoji Counts, v15.0» . Юникод . Проверено 12 сентября 2023 г.
- ^ «Перечисленные версии стандарта Unicode» . Проверено 21 июня 2016 г.
- ^
- «Юникод версии 1.0» . 1991.
- «1.0.0/UnicodeData.txt (реконструированный)» . 2004 . Проверено 16 марта 2010 г.
- ^ «Данные Юникод 1.0.1» . Проверено 16 марта 2010 г.
- ^
- «Юникод версии 1.1» .
- «Данные Юникод 1995» . Проверено 16 марта 2010 г.
- ^
- «Юникод версии 2.0.0» .
- «Данные Юникод-2.0.14» . Проверено 16 марта 2010 г.
- ↑ Перейти обратно: Перейти обратно: а б
- «Юникод версии 2.1.0» .
- «Данные Юникод-2.1.2» . Проверено 16 марта 2010 г.
- ^
- «Юникод версии 3.0.0» .
- «Данные Юникод-3.0.0» . Проверено 2 октября 2023 г.
- ^
- «Юникод версии 3.1.0» .
- «Данные Юникод-3.1.0» . Проверено 2 октября 2023 г.
- ^
- «Юникод версии 3.2.0» .
- «Данные Юникод-3.2.0» . Проверено 2 октября 2023 г.
- ^
- «Юникод версии 4.0.0» .
- «Данные Юникод-4.0.0» . Проверено 2 октября 2023 г.
- ^ «Данные Юникод-4.1.0» . Проверено 16 марта 2010 г.
- ^ «Именованные последовательности-4.1.0» . Проверено 16 марта 2010 г.
- ^ «Данные Юникод 5.0.0» . Проверено 17 марта 2010 г.
- ^ «Данные Юникод 5.1.0» . Проверено 17 марта 2010 г.
- ^ «Данные Юникод 5.2.0» . Проверено 17 марта 2010 г.
- ^ «Данные Юникод 6.0.0» . Проверено 11 октября 2010 г.
- ^ «Список эмодзи Unicode 6.0» . emojipedia.org . Проверено 21 сентября 2022 г.
- ^ «Данные Юникод 6.1.0» . Проверено 31 января 2012 г.
- ^ «Данные Юникод 6.2.0» . Проверено 26 сентября 2012 г.
- ^ «Данные Юникод 6.3.0» . Проверено 30 сентября 2013 г.
- ^ «Данные Юникод 7.0.0» . Проверено 15 июня 2014 г.
- ^ «Данные Юникод 8.0.0» . Проверено 17 июня 2015 г.
- ^ «Юникод 8.0.0» . Консорциум Юникод . Проверено 17 июня 2015 г.
- ^ «Юникод 9.0.0» . Консорциум Юникод . Проверено 21 июня 2016 г.
- ^ «Данные Юникод 9.0.0» . Проверено 21 июня 2016 г.
- ^ Лобао, Мартим (07.06.2016). «Это два смайлика, которые не были одобрены для Unicode 9, но которые Google все равно добавил в Android» . Андроид Полиция . Проверено 4 сентября 2016 г.
- ^ «Юникод 10.0.0» . Консорциум Юникод . Проверено 20 июня 2017 г.
- ^ «Стандарт Юникод, версия 11.0.0, Приложение C» (PDF) . Консорциум Юникод . Проверено 11 июня 2018 г.
- ^ «Стандарт Юникод, версия 12.0.0, Приложение C» (PDF) . Консорциум Юникод . Проверено 5 марта 2019 г.
- ^ «Юникод версии 12.1 выпущен в поддержку эпохи Рейва» . Блог Юникода . Проверено 7 мая 2019 г.
- ^
- «Юникод 13.0.0» .
- «Анонс стандарта Unicode, версия 13.0» . Блог Юникода . Проверено 11 марта 2020 г.
- ^ «Стандарт Юникод, версия 13.0 – Приложение C основных спецификаций» (PDF) . Консорциум Юникод . Проверено 11 марта 2020 г.
- ^
- ^
- ^
- ^ «Предлагаемые новые персонажи: Трубопровод» . Юникод . 12 сентября 2023 г. Проверено 13 сентября 2023 г.
- ^ «Юникод версии 16.0» . emojipedia.org . Проверено 13 сентября 2023 г.
- ^ «Глоссарий терминов Юникода» . Проверено 16 марта 2010 г.
- ^ «2.4 Кодовые точки и символы». Стандарт Unicode версии 15.1 – Основная спецификация (PDF) . 2023. с. 29.
- ^ «3.4 Символы и кодировка». Стандарт Юникод, версия 15.1 (PDF) . 2023. с. 88.
- ^ «Re: Происхождение обозначения U+nnnn» . Архив списка рассылки Unicode (список рассылки). 08.11.2005.
- ^ «Приложение A: Условные обозначения» (PDF) . Стандарт Юникод . Консорциум Юникод. Сентябрь 2023 г.
- ↑ Перейти обратно: Перейти обратно: а б «Политика стабильности кодировки символов Юникода» . Проверено 16 марта 2010 г.
- ^ «Свойства» (PDF) . Проверено 12 сентября 2023 г.
- ^ «Модель кодировки символов Юникода» . Проверено 12 сентября 2023 г.
- ^ «Именованные последовательности в Юникоде» . Проверено 16 сентября 2022 г.
- ^ «Псевдонимы имен в Юникоде» . Проверено 16 марта 2010 г.
- ^ «ЯнаСанскритСанс» . Архивировано из оригинала 16 июля 2011 г.
- ^ CWA 13873:2000 - Многоязычные европейские подмножества в ISO / IEC 10646-1 Соглашение CEN Workshop 13873
- ^ Кун, Маркус (1998). «Обоснование многоязычного европейского набора символов 2 (MES-2)» . Кембриджский университет . Проверено 20 марта 2023 г.
- ^ «DIN 91379:2022-08: Символы и определенные последовательности символов в Юникоде для электронной обработки имен и обмена данными в Европе, с CD-ROM» . Бет Верлаг . Проверено 21 августа 2022 г.
- ^ «UTF-8, UTF-16, UTF-32 и спецификация» . Часто задаваемые вопросы по Unicode.org . Проверено 12 декабря 2016 г.
- ^ Стандарт Юникод, версия 6.2 . Консорциум Юникод. 2013. с. 561. ИСБН 978-1-936213-08-5 .
- ^ Дэвис, Марк (5 мая 2008 г.). «Переход на Юникод 5.1» . Официальный блог Google . Проверено 19 февраля 2021 г.
- ^ «Обзор использования кодировок символов с разбивкой по рейтингу» . W3Techs . Проверено 16 января 2023 г.
- ^ «Статистика использования и рыночная доля US-ASCII для веб-сайтов, октябрь 2021 г.» . W3Techs . Проверено 1 ноября 2020 г.
- ^ Б. Кертин (июль 1999 г.). Интернационализация протокола передачи файлов . дои : 10.17487/RFC2640 . РФК 2640 . Проверено 17 августа 2022 г.
- ^ Х. Альвестранд (январь 1998 г.). Политика IETF в отношении наборов символов и языков . дои : 10.17487/RFC2277 . BCP 18. RFC 2277 . Проверено 17 августа 2022 г.
- ^ Пайк, Роб (30 апреля 2003 г.). «История UTF-8» .
- ^ «ISO/IEC JTC1/SC 18/WG 9 N» (PDF) . Проверено 4 июня 2012 г.
- ^ Хедли, Джонатан (2009). «Поиск Юникода» .
- ^ Милде, Бенджамин (2011). «Распознавание символов Юникода» .
- ^ Дж. Кленсин; Ю. Ко (июль 2007 г.). Обзор и структура интернационализированной электронной почты . дои : 10.17487/RFC4952 . РФК 4952 . Проверено 17 августа 2022 г.
- ^ Дж. Кленсин; Ю. Ко (февраль 2012 г.). Обзор и структура интернационализированной электронной почты . дои : 10.17487/RFC6530 . РФК 6530 . Проверено 17 августа 2022 г.
- ^ Дж. Яо; В. Мао (февраль 2012 г.). Расширение SMTP для интернационализированной электронной почты . дои : 10.17487/RFC6531 . RFC 6531 . Проверено 17 августа 2022 г.
- ^ А. Ян; С. Стил; Н. Фрид (февраль 2012 г.). Интернационализированные заголовки электронной почты . дои : 10.17487/RFC6532 . RFC 6532 . Проверено 17 августа 2022 г.
- ^ К. Ньюман; А. Гульбрандсен; А. Мельников (июнь 2008 г.). Интернационализация протокола доступа к сообщениям Интернета . дои : 10.17487/RFC5255 . РФК 5255 . Проверено 17 августа 2022 г.
- ^ Р. Гелленс; К. Ньюман (февраль 2010 г.). Поддержка POP3 для UTF-8 . дои : 10.17487/RFC5721 . РФК 5721 . Проверено 17 августа 2022 г.
- ^ Вуд, Алан. «Настройка Windows Internet Explorer 5, 5.5 и 6 для поддержки многоязычности и Unicode» . Алан Вуд . Проверено 4 июня 2012 г.
- ^ «Расширяемый язык разметки (XML) 1.1 (второе издание)» . Проверено 1 ноября 2013 г.
- ^ Бигелоу, Чарльз; Холмс, Крис (сентябрь 1993 г.). «Дизайн шрифта Unicode» (PDF) . Электронное издание . 6 (3): 292.
- ^ «Шрифты и клавиатуры» . Консорциум Юникод. 28 июня 2017 г. Проверено 13 октября 2019 г.
- ^ Краткая история кодов символов , Стивен Дж. Сирл, первоначально написано в 1999 году , последнее обновление - в 2004 году.
- ↑ Перейти обратно: Перейти обратно: а б «Приложение E: История объединения Хань» (PDF) . Стандарт Unicode версии 15.0 – Основная спецификация . Консорциум Юникод . 2022.
- ↑ Перейти обратно: Перейти обратно: а б Топпинг, Сюзанна (25 июня 2013 г.). «Тайная жизнь Юникода» . ИБМ . Архивировано из оригинала 25 июня 2013 г. Проверено 20 марта 2023 г.
- ^ Виттерн, Кристиан (1 мая 1995 г.). «Китайские коды символов: обновление» . Международный научно-исследовательский институт дзен-буддизма / Университет Ханазоно . Архивировано из оригинала 12 октября 2004 г.
- ^ «Шрифты Noto CJK» . Шрифты Ното. 18 февраля 2023 г.
Выберите этот формат развертывания, если ваша система поддерживает переменные шрифты и вы предпочитаете использовать только один язык, но вам также требуется полный охват символов или возможность помечать текст языковыми тегами для использования глифов, подходящих для других языков (для этого требуется приложение, поддерживающее языковые теги и функция GSUB OpenType 'locl').
- ^ Прейсс, Инго. «Функция OpenType: locl — локализованные формы» . preusstype.com .
- ^ «Свойства складывания корпуса» . База данных символов Юникода . Консорциум Юникод . 12 мая 2023 г.
- ^ "confusablesSummary.txt" . Механизмы безопасности Unicode для UTS #39 . Консорциум Юникод . 11 августа 2023 г.
- ^ «UTR № 36: Вопросы безопасности Unicode» . Юникод .
- ^ Баучер, Николас; Шумайлов Илья; Андерсон, Росс; Паперно, Николас (2022). «Плохие персонажи: незаметные атаки НЛП» . Симпозиум IEEE 2022 по безопасности и конфиденциальности (SP) . Сан-Франциско, Калифорния, США: IEEE. стр. 1987–2004 гг. arXiv : 2106.09898 . дои : 10.1109/SP46214.2022.9833641 . ISBN 978-1-66541-316-9 . S2CID 235485405 .
- ^ Инженерное дело, Spotify (18 июня 2013 г.). «Креативные имена пользователей и взлом учетной записи Spotify» . Спотифай Инжиниринг . Проверено 15 апреля 2023 г.
- ^ Уилер, Дэвид А. (2020). «Контрмеры» . Первоначальный анализ закулисного исходного кода : 4–1.
- ^ «UTR № 36: Вопросы безопасности Unicode» . Юникод . Проверено 27 июня 2022 г.
- ^ Баучер, Николас; Андерсон, Росс. «Источник трояна: невидимые уязвимости» (PDF) . Проверено 2 ноября 2021 г.
- ^ «Код Visual Studio, октябрь 2021 г.» . code.visualstudio.com . Проверено 11 ноября 2021 г.
- ^ Вклад AFII о WAVE DASH , «Таблица символов Юникода для японского языка, зависящая от поставщика» . 22 апреля 2011 г. Архивировано из оригинала 22 апреля 2011 г. Проверено 20 мая 2019 г.
- ^ Проблема ISO 646-* , раздел 4.4.3.5 введения в I18n , Томохиро Кубота, 2001 г.
- ^ «Формы презентаций на арабском языке-A» (PDF) . Проверено 20 марта 2010 г.
- ^ «Формы презентаций на арабском языке-B» (PDF) . Проверено 20 марта 2010 г.
- ^ «Алфавитные формы представления» (PDF) . Проверено 20 марта 2010 г.
- ^ «Предложение по кодировке тибетских символов BrdaRten для ISO / IEC 10646 в BMP» (PDF) . 2002-12-02.
- ^ Умамахесваран, В.С. (7 ноября 2003 г.). «Резолюции заседания 44 РГ 2» (PDF) . Резолюция М44.20.
- ^ «Стабильность кодировки символов» . Юникод . Архивировано из оригинала 1 января 2024 г.
- ↑ Перейти обратно: Перейти обратно: а б «Техническое примечание Unicode № 27: известные аномалии в именах символов Unicode» . Юникод . 14.06.2021.
- ^ «Диаграмма Юникода: «на самом деле она имеет форму строчной каллиграфической буквы p, несмотря на название» » (PDF) .
- ^ «Ошибка в написании СКОБКИ в имени персонажа — известный дефект» (PDF) .
- ↑ Перейти обратно: Перейти обратно: а б «Стандартное приложение Unicode № 24: Свойство сценария Unicode» . Консорциум Юникод. 2021. 2.2 Связь с кодами ISO 15924 . Проверено 29 апреля 2022 г.
- ^ «Скрипты-15.1.0.txt» . Консорциум Юникод. 2023 . Проверено 12 сентября 2023 г.
Дальнейшее чтение [ править ]
- Джули Д. Аллен. Стандарт Unicode, версия 6.0 , Консорциум Unicode , Маунтин-Вью, 2011 г., ISBN 9781936213016 , ( Юникод 6.0.0 ).
- Полное руководство по типографике , Джеймс Феличи, Adobe Press; 1-е издание, 2002 г. ISBN 0-321-12730-7
- Стандарт Unicode, версия 3.0 , Консорциум Unicode, Addison-Wesley Longman, Inc., апрель 2000 г. ISBN 0-201-61633-5
- Стандарт Unicode, версия 4.0 , Консорциум Unicode, Addison-Wesley Professional, 27 августа 2003 г. ISBN 0-321-18578-1
- Стандарт Unicode, версия 5.0, пятое издание , Консорциум Unicode , Addison-Wesley Professional, 27 октября 2006 г. ISBN 0-321-48091-0 -->
- Демистификация Unicode: Практическое руководство программиста по стандарту кодирования , Ричард Гиллам, Addison-Wesley Professional; 1-е издание, 2002 г. ISBN 0-201-70052-2
- Объяснение Unicode , Юкка К. Корпела, О'Рейли; 1-е издание, 2006 г. ISBN 0-596-10121-X
- Unicode: A Primer , Тони Грэм, книги M&T, 2000. ISBN 0-7645-4625-2 .
- Хараламбус, Яннис; Мартин Дюрст (2019). «Юникод с лингвистической точки зрения». В Хараламбусе, Яннис (ред.). Труды по графемике в XXI веке, Брест, 2018 . Брест: Fluxus Editions. стр. 167–183. дои : 10.36824/2018-граф-хара1 . ISBN 978-2-9570549-1-6 .
Внешние ссылки [ править ]
- Юникод, Инк.
- Ресурсы Unicode Алана Вуда - содержат списки текстовых процессоров с поддержкой Unicode; шрифты и символы сгруппированы по типам; символы представлены списками, а не сетками.
- Юникод в Керли
- Резервный шрифт Unicode BMP — отображает значение Unicode 6.1 любого символа в документе, в том числе в области частного использования, а не сам глиф.
- Мировые системы письма , все 293 известные системы письма со статусом Unicode (128 еще не закодированы по состоянию на июнь 2024 г.) [update])