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

редактировать
Стандартный набор символов, определенный в ISO / IEC 10646

Универсальный набор кодированных символов
Псевдоним (а)UCS, Юникод
Язык(s)Международный
СтандартныйISO / IEC10646
Форматы кодированияUTF-8, UTF-16, GB18030. Реже : UTF-32, BOCU, SCSU, UTF-7
ПредшествовалISO 8859, ISO 2022 и др.
  • v
  • t

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

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

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

Содержание

  • 1 Формы кодирования
  • 2 История
  • 3 Отличия от Unicode
  • 4 Цитирование универсального кодированного набора символов
  • 5 Связь с Unicode
  • 6 См. Также
  • 7 Примечания
  • 8 Ссылки
  • 9 Внешние ссылки

Формы кодирования

ISO / IEC 10646 определяет несколько форм кодирования символов для универсального набора кодированных символов. Самый простой, UCS-2, использует одно кодовое значение (определенное как число, одно или несколько из которых представляют кодовую точку в целом, но для UCS-2 это строго одно кодовое значение, которое представляет собой кодовую точку) между 0 и 65 535 для каждого символа, и позволяет ровно двум байтам (одно слово 16- бит ) представлять это значение. Таким образом, UCS-2 позволяет двоичное представление каждой кодовой точки в BMP, которая представляет символ. UCS-2 не может представлять кодовые точки вне BMP.

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

Другая кодировка, UCS- 4, использует четыре байта (всего 32 бита) для кодирования одного символа кодового пространства . Несмотря на то, что Unicode ограничивает кодовое пространство до верхнего предела 10FFFF. В стандарте ISO / IEC 10646 указано, что все будущие присвоения символов будут происходить в диапазонах до 0x7FFFFFFF шестнадцатеричный). UCS-4 позволяет представлять каждое значение как ровно четыре байта (одно 32-битное слово). Таким образом, UCS-4 позволяет двоичное представление каждой кодовой точки в UCS, включая те, которые находятся за пределами BMP. Как и в UCS-2, каждый закодированный символ имеет фиксированную длину в байтах, что упрощает манипулирование, но, конечно, для него требуется вдвое больше памяти, чем для UCS-2.

В настоящее время преобладающей кодировкой UCS является UTF-8, которая представляет собой кодировку переменной ширины, разработанную для обратной совместимости с ASCII и для избежания осложнений, связанных с порядком байтов. и метки порядка байтов в UTF-16 и UTF-32. Более 93% всех веб-страниц закодированы в UTF-8. Инженерная группа Интернета (IETF) требует, чтобы все Интернет-протоколы определяли кодировку, используемую для символьных данных, а поддерживаемые кодировки символов должны включать UTF-8. Консорциум Internet Mail (IMC) рекомендует, чтобы все программы электронной почты могли отображать и создавать почту с использованием UTF-8. Он также все чаще используется в качестве кодировки символов по умолчанию в операционных системах, языках программирования, API и программных приложениях.

См. Также Сравнение кодировок Unicode.

История

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

  • 128 групп по
  • 256 плоскостей по
  • 256 строк по
  • 256 ячеек,

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

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

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

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

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

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

Отличия от Unicode

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

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

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

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

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

Связь с Unicode

С 1991 года Консорциум Unicode и ISO разработали Стандарт Unicode ("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.

  • ISO / IEC 10646-1: 1993 = Unicode 1.1
  • ISO / IEC 10646-1: 1993 плюс поправки 5-7 = Unicode 2.0
  • ISO / IEC 10646-1: 1993 плюс поправки 5–7 = Unicode 2.1 за исключением знака евро и символа замены объекта, которые включены в поправку 18
  • ISO / IEC 10646 -1: 2000 = Unicode 3.0
  • ISO / IEC 10646-1: 2000 и ISO / IEC 10646-2: 2001 = Unicode 3.1
  • ISO / IEC 10646-1: 2000 плюс поправка 1 и ISO / IEC 10646-2: 2001 = Unicode 3.2
  • ISO / IEC 10646: 2003 = Unicode 4.0
  • ISO / IEC 10646: 2003 плюс поправка 1 = Unicode 4.1
  • ISO / IEC 10646: 2003 плюс поправки 1-2 = Unicode 5.0 за исключением букв Деванагари GGA, JJA, DDDA и BBA, которые включены в поправку 3
  • ISO / IEC 10646: 2003 плюс поправки с 1 по 4 = Unicode 5.1
  • ISO / IEC 10646: 2003 плюс поправки с 1 по 6 = Unicode 5.2
  • ISO / IEC 10646: 2003 плюс поправки с 1 по 8 = ISO / IEC 10646 : 2011 = Unicode 6.0 кроме Знак индийской рупии
  • IS O / IEC 10646: 2012 = Unicode 6.1
  • ISO / IEC 10646: 2012 = Unicode 6.2 за исключением знака турецкой лиры, который включен в Поправку 1
  • ISO / IEC 10646: 2012 = Unicode 6.3 за исключением знака турецкой лиры, который включен в Поправку 1, и пяти двунаправленных управляющих символов (арабский буквенный знак, слева направо). Right Isolate, Right-To-Left Isolate, First Strong Isolate, Pop Directional Isolate), которые включены в поправку 2
  • ISO / IEC 10646: 2012 плюс поправки 1 и 2 = Unicode 7.0 за исключением знака рубля
  • ISO / IEC 10646: 2014 плюс поправка 1 = Unicode 8.0 за исключением знака Лари, девяти унифицированных иероглифов CJK и 41 символа эмодзи
  • ISO / IEC 10646: 2014 плюс поправки 1 и 2 = Unicode 9.0 за исключением Adlam, Newa, японских телевизионных символов и 74 эмодзи и символов
  • ISO / IEC 10646: 2017 = Unicode 10.0 за исключением 285 символов Hentaigana, 3 символа Zanabazar Square и 56 символов emoji

См. также

Примечания

Ссылки

Внешние ссылки

Последняя правка сделана 2021-06-20 13:28:23
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте