Универсальный набор кодированных символов

Из Википедии, бесплатной энциклопедии

®️

Универсальный набор кодированных символов
Псевдоним(а) UCS, Юникод
Язык(и) Международный
Стандартный ИСО/МЭК 10646
Форматы кодирования UTF-8 , UTF-16 , ГБ
Реже : UTF-32 , BOCU , SCSU , UTF-7.
Предшествует ISO/IEC 8859 , ISO/IEC 2022 и другие.

Универсальный набор кодированных символов ( UCS , Unicode ) — это стандартный набор символов , определенный международным стандартом ISO / IEC 10646, Информационные технологии — Универсальный набор кодированных символов (UCS) (плюс поправки к этому стандарту), который является основой многих кодировки символов , улучшающиеся по мере добавления символов из ранее не представленных систем типизации.

UCS имеет более 1,1 миллиона возможных кодовых точек , доступных для использования/распределения, но только первые 65 536, то есть базовая многоязычная плоскость (BMP), вошли в общее использование до 2000 года. Эта ситуация начала меняться, когда Китайская Народная Республика ( КНР) в 2006 году постановила, что все программное обеспечение, продаваемое в ее юрисдикции, должно поддерживать GB 18030 . Это требовало программного обеспечения, предназначенного для продажи в КНР, для выхода за рамки БМП. [ нужны разъяснения ]

Система намеренно оставляет множество кодов, не присвоенных символам, даже в BMP. Это делается для того, чтобы обеспечить возможность дальнейшего расширения или минимизировать конфликты с другими формами кодирования.

В исходной редакции UCS определялась UTF-16 , расширение UCS-2, для представления кодовых точек вне BMP. Диапазон кодовых точек в зоне S (специальной) BMP остается неназначенным символам. UCS-2 запрещает использование кодовых значений для этих кодовых точек, но UTF-16 позволяет использовать их парами. Unicode также принял UTF-16, но в терминологии Unicode элементы верхней полузоны становятся «высокими суррогатами», а элементы нижней полузоны становятся «низкими суррогатами». [ нужны разъяснения ]

Другая кодировка, UTF-32 (ранее называвшаяся UCS-4), использует четыре байта (всего 32 бита) для кодирования одного символа кодового пространства. Таким образом, UTF-32 допускает двоичное представление каждой точки кода (по состоянию на 2024 год) в API и программных приложениях.

История [ править ]

Международная организация по стандартизации (ISO) приступила к созданию универсального набора символов в 1989 году и опубликовала проект ISO 10646 в 1990 году. Хью МакГрегор Росс был одним из его главных архитекторов.

Эта работа происходила независимо от разработки стандарта Unicode , который разрабатывался с 1987 года компаниями Xerox и Apple .

Первоначальный проект ISO 10646 заметно отличался от действующего стандарта. Он определил:

  • 128 групп
  • 256 самолетов
  • 256 рядов
  • 256 ячеек,

кажущаяся сумма составляет 2 147 483 648 символов, но на самом деле стандарт мог кодировать только 679 477 248 символов, поскольку политика запрещала байтовые значения управляющих кодов C0 и C1 (от 0x00 до 0x1F и от 0x80 до 0x9F в шестнадцатеричной записи) в любом из четырех байтов. задание группы, плоскости, строки и ячейки. Например, латинская заглавная буква A находилась в группе 0x20, плоскости 0x20, строке 0x20, ячейке 0x41.

Символы этого изначального стандарта ISO/IEC 10646 можно закодировать одним из трех способов:

  1. UCS-4, четыре байта на каждый символ, что обеспечивает простое кодирование всех символов;
  2. UCS-2, два байта на каждый символ, позволяющий кодировать первую плоскость, 0x20, базовую многоязычную плоскость, содержащую первые 36 864 кодовых точки, напрямую, а также другие плоскости и группы путем переключения на них с помощью ISO/IEC 2022 ; escape-последовательностей
  3. UTF-1 , который кодирует все символы в последовательности байтов различной длины (от 1 до 5 байт, каждый из которых не содержит управляющих кодов).

Таким образом, в 1990 году существовало две инициативы по созданию универсального набора символов: Unicode с 16 битами для каждого символа (65 536 возможных символов) и ISO/IEC 10646. Компании-разработчики программного обеспечения отказались принять требования стандарта ISO к сложности и размеру и смогли убедить ряд национальных органов ИСО проголосовать против него. [ нужна цитата ] Представители ISO осознали, что не могут продолжать поддерживать стандарт в его нынешнем состоянии, и договорились об унификации своего стандарта с Unicode. Произошли два изменения: снятие ограничения на количество символов (запрет на значения управляющего кода), что открыло для распределения кодовые точки; и синхронизация репертуара базовой многоязычной плоскости с репертуаром Unicode.

Между тем, с течением времени ситуация в самом стандарте Unicode изменилась: 65 536 символов оказались недостаточными, а стандарт начиная с версии 2.0 и далее поддерживает кодирование 1 112 064 кодовых точек из 17 плоскостей с помощью UTF-16. суррогатного механизма . По этой причине ISO/IEC 10646 был ограничен содержанием такого количества символов, которое может быть закодировано с помощью UTF-16, и не более, то есть чуть более миллиона символов вместо более чем 679 миллионов. Кодировка UCS-4 ISO/IEC 10646 была включена в стандарт Unicode с ограничением диапазона UTF-16 и под названием UTF-32 , хотя она практически не используется вне внутренних данных программ.

Роб Пайк и Кен Томпсон , разработчики операционной системы Plan 9 , разработали новую, быструю и хорошо продуманную кодировку смешанной ширины, которая также была обратно совместима с 7-битным ASCII , и которая получила название UTF-8 . [1] и в настоящее время является самой популярной кодировкой UCS.

Отличия от Юникод [ править ]

ISO/IEC 10646 и Unicode имеют идентичный репертуар и номера — в обоих стандартах существуют одни и те же символы с одинаковыми номерами, хотя Unicode выпускает новые версии и чаще добавляет новые символы. В Unicode есть правила и спецификации, выходящие за рамки ISO/IEC 10646. ISO/IEC 10646 — это простая карта символов, расширение предыдущих стандартов, таких как ISO/IEC 8859 . Напротив, Unicode добавляет правила сортировки , нормализации форм и двунаправленный алгоритм для сценариев с письмом справа налево, таких как арабский и иврит. Для взаимодействия между платформами, особенно если используются двунаправленные сценарии, недостаточно поддерживать ISO/IEC 10646; Юникод должен быть реализован.

Для поддержки этих правил и алгоритмов Unicode добавляет множество свойств к каждому символу в наборе, например свойства, определяющие класс двунаправленного письма по умолчанию, и свойства, определяющие, как символ сочетается с другими символами. Если символ представляет числовое значение, например европейское число «8» или обычную дробь «¼», это числовое значение также добавляется как свойство символа. Юникод предполагает, что эти свойства будут поддерживать совместимую обработку текста на разных языках.

Некоторые приложения поддерживают символы ISO/IEC 10646, но не полностью поддерживают Unicode. Одно из таких приложений, Xterm , может правильно отображать все символы ISO/IEC 10646, которые имеют однозначное сопоставление символов с глифами. [ нужны разъяснения ] и однонаправленность. Он может обрабатывать некоторые комбинированные знаки простыми методами перечеркивания, но не может отображать иврит (двунаправленный), деванагари (один символ для многих глифов) или арабский язык (обе функции). Большинство приложений с графическим пользовательским интерфейсом используют стандартные процедуры рисования текста ОС, которые обрабатывают такие сценарии, хотя сами приложения по-прежнему не всегда обрабатывают их правильно.

универсальный кодированный набор Ссылка на символов

ISO/IEC 10646 , общая неофициальная ссылка на семейство стандартов ISO/IEC 10646, приемлема в большинстве случаев. И хотя это отдельный стандарт, термин Unicode столь же часто неофициально используется при обсуждении UCS. Однако в любых нормативных ссылках на UCS как на публикацию должен указываться год издания в форме ISO/IEC 10646:{year} , например: ISO/IEC 10646:2014 .

Связь с Unicode [ править ]

С 1991 года Консорциум Unicode и ISO / IEC разработали Стандарт Unicode совместно («Юникод») и ISO/IEC 10646. Репертуар, имена символов и кодовые точки Unicode версии 2.0 точно соответствуют стандарту ISO/IEC 10646-1:1993 с его первыми семью опубликованными поправками. После публикации Unicode 3.0 в феврале 2000 года соответствующие новые и обновленные символы вошли в UCS через ISO/IEC 10646-1:2000. В 2003 году части 1 и 2 стандарта ISO/IEC 10646 были объединены в одну часть, в которую с тех пор был внесен ряд поправок, добавляющих в стандарт символы, примерно синхронные со стандартом Unicode.

См. также [ править ]

Сопутствующие стандарты:

Ссылки [ править ]

  1. ^ Пайк, Роб (3 апреля 2003 г.). «История UTF-8» . Архивировано из оригинала 23 мая 2016 г.

Внешние ссылки [ править ]