1. Введение

Эта статья является вольным пересказом раздела «1. Introduction» Стандарта Юникода.

Введение, как впрочем и большинство остальных глав, содержит большое количество воды о том, почему Юникод это хорошо. Ниже основные тезисы.

С Юникодом жизнь стала лучше. Вместо хаоса размножившихся кодировок, наступила стабильность, глобальность, упрощение ПО и снижение затрат на разработку. Юникод закладывает фундамент современной ИТ-индустрии.

Взяв за основу ASCII, Юникод выходит далеко за её пределы. Любые символы любых языков могут использоваться вместе в любых комбинациях и с одинаковой лёгкостью. Никаких больше escape-последовательностей, только чистый незамутнённый текст.

Каждому символу ставится в соответствие число (кодовая позиция, код, code point) и даётся название. Кроме того, для каждого символа определяется и другая информация: регистр, направление вывода, алфавитные свойства и многое другое, необходимое для корректной работы с текстом.

Для представления текстов в памяти, определяются несколько кодировок. См. кодировки UTF.

Юникод полностью совместим со стандартом ISO/IEC 10646. Любая реализация, совместимая с Юникодом, совместима и с 10646.

Юникод содержит 1 114 112 кодовых позиций, большинство из которых доступно для кодирования символов. Наиболее используемые символы сведены в первые 65 536 позиций, также известные, как базовая плоскость (BMP, Basic Multilingual Plane).

1.1. Охват

Стандарт содержит 120 672 символов из различных мировых письменностей. Этого достаточно для, практически, любых задач. Кроме того, в Юникоде присутствует множество важных наборов, таких как, например, символы валют, знаки пунктуации, математические операторы и другие.

Заметим, однако, что Юникод не содержит частные символы, логотипы и графические обозначения не связанные с текстом. Стандарт выделяет для частного использования 6 400 кодовых позиций внутри базовой плоскости и ещё 131 068 вне её. Если требуется, эти коды можно использовать для символов, которые не включены в стандарт.

Что охватывает стандарт

Стандарт охватывает все широко используемые на данный день символы. Он содержит в себе символы всех основных национальных и международных стандартов кодировок.

Полный список включенных в Юникод стандартов приведён в приложении.

Новые символы

Стандарт Юникода держит руку на пульсе и следит за новыми и меняющимися требованиями индустрии и науки. Кроме того, важной целью является сохранение мирового культурного наследия, путём добавления в стандарт древних письменностей.

1.2. Принципы и цели

  • Универсальность. Стандарт должен охватывать, по возможности, все символы, которые могут быть использованы для текстового обмена. Включая все основные национальные, международные и промышленные наборы.
  • Эффективность. Простой текст прост для разбора. Программа не должна отслеживать текущее состояние или искать экранированные последовательности. В любой точке текста символы могут быть обработаны быстро и однозначно. Фиксированный код символа позволяет эффективно сортировать, отображать и редактировать текст, а также искать по нему.
  • Однозначность. Каждая конкретная кодовая позиция всегда соответствует одному и тому же символу.

1.3. Обработка текста

Кроме простого определения списка доступных символов, стандарт даёт обширное и подробное описание того, как с ними работать.

  • Как разделять слова и переносить строки,
  • Сортировать текст в разных языках,
  • Форматировать числа, даты, время и другие элементы в зависимости от локали,
  • Отображать текст справа-налево (как в арабском или иврите),
  • Отрисовывать комбинированный текст, как в языках Южной Азии,
  • Обходить проблемы безопасности, связанные с одинаково выглядящими символами из разных языков.

Символы и их графическое представление (глифы)

Стандарт не определяет глифы. Он определяет, как интерпретируется символ. Как его отображать, это уже задача конкретного программного обеспечения.

Текстовые элементы

Для успешной обработки текста, обычно требуется выделять в нём определённые элементы и определять правила их интерпретации. Определение текстового элемента часто зависит от задачи текущего действия. Например, при поиске конкретного слова, обычно следует игнорировать регистр. Однако, для корректного написания требуется его учитывать.

Стандарт не определяет, что является, а что не является текстовым элементом для различных алгоритмов обработки текста. Вместо этого он определяет понятие кодированного символа (encoded character). Кодированный символ представляется в виде числа (кодовой позиции) от 0 до 10FFFF₁₆. Текстовый элемент же, представляется в виде одного или нескольких кодированных символов.

Скопировано!