Объяснение кодировки символов Unicode

Чтобы компьютер мог хранить текст и числа, понятные людям, необходим код, преобразующий символы в числа. Стандарт Unicode определяет такой код с использованием кодировки символов.

Кодировка символов так важна, чтобы каждое устройство могло отображать одну и ту же информацию. Пользовательская схема кодировки символов может отлично работать на одном компьютере, но проблемы возникнут, если вы отправите тот же текст кому-то другому. Он не поймет, о чем вы говорите, если не поймет и схему кодирования.

Кодировка символов

Все символы кодировка – это присвоение номера каждому символу, который можно использовать. Вы можете сделать кодировку символов прямо сейчас.

Например, я мог бы сказать, что буква A становится числом 13 , a = 14, 1 = 33, # = 123 и т. д.

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

Что такое Юникод?

ASCII (Американский стандартный код для обмена информацией) стал первой широко распространенной схемой кодирования. Однако он ограничен определениями только 128 символов. Это нормально для наиболее распространенных английских символов, цифр и знаков препинания, но немного ограничивает остальной мир.

Естественно, остальная часть миру нужна такая же схема кодирования и для своих персонажей. Однако какое-то время, в зависимости от того, где вы находились, для одного и того же кода ASCII мог отображаться другой символ.

В конце концов, другие части мира начали создавать свои собственные схемы кодирования, и все начало немного запутываться. Мало того, что схемы кодирования были разной длины, программы должны были выяснить, какую схему кодирования они должны были использовать.

Стало очевидным, что новая кодировка символов Схема была необходима, когда был создан стандарт Unicode. Цель Unicode – объединить все различные схемы кодирования, чтобы можно было максимально ограничить путаницу между компьютерами.

В наши дни стандарт Unicode определяет значения для более чем 128 000 символов и может быть просмотрен в Консорциуме Unicode. Он имеет несколько форм кодировки символов:

  • UTF-8: Использует только один байт (8 бит ) для кодирования английских символов. Он может использовать последовательность байтов для кодирования других символов. UTF-8 широко используется в системах электронной почты и в Интернете.
  • UTF-16: использует два байта (16 бит) для кодирования наиболее часто используемых символов. . При необходимости дополнительные символы могут быть представлены парой 16-битных чисел.
  • UTF-32: использует четыре байта (32 бита) для кодирования символы. Стало очевидно, что по мере роста стандарта Unicode 16-битное число слишком мало для представления всех символов. UTF-32 может представлять каждый символ Unicode как одно число.

Примечание. UTF означает Unicode. Блок преобразования.

Кодовые точки

Кодовая точка – это значение, которое символ задается в стандарте Unicode. Значения в соответствии с Unicode записываются как шестнадцатеричные числа и имеют префикс U+.

Например, для кодирования символы, которые мы рассмотрели ранее:

  • A – это U + 0041
  • a равно U + 0061
  • 1 равно U + 0031
  • # равно U + 0023

Эти кодовые точки разделены на 17 различных секций, называемых плоскостями, обозначенными цифрами от 0 до 16. Каждая плоскость содержит 65 536 кодовых точек. . Первая плоскость, 0, содержит наиболее часто используемые символы и известна как базовая многоязычная плоскость (BMP).

Единицы кода

Схемы кодирования состоят из кодовых единиц, которые используются для предоставления индекса расположения символа на плоскости.

Рассмотрим UTF. -16 в качестве примера. Каждое 16-битное число представляет собой кодовую единицу. Кодовые единицы могут быть преобразованы в кодовые точки. Например, символ плоской банкноты ♭ имеет кодовую точку U + 1D160 и находится на второй плоскости стандарта Unicode (дополнительная идеографическая плоскость). Он будет закодирован с использованием комбинации 16-битных кодовых единиц U + D834 и U + DD60.

Для BMP значения кодовых точек и кодовые единицы идентичны. Это позволяет использовать ярлык для UTF-16, который экономит много места для хранения. Для представления этих символов необходимо использовать только одно 16-битное число.

Как в Java используется Unicode?

Java была создана примерно в то время, когда в стандарте Unicode были определены значения для гораздо меньшего набора символов. Тогда считалось, что 16 бит будет более чем достаточно для кодирования всех символов, которые когда-либо понадобятся. Имея это в виду, Java была разработана для использования UTF-16. Тип данных char изначально использовался для представления 16-битной кодовой точки Unicode.

Начиная с Java SE v5.0, char представляет собой единицу кода. Это не имеет большого значения для представления символов, которые находятся в базовой многоязычной плоскости, потому что значение кодовой единицы такое же, как и кодовая точка. Однако это означает, что для символов на других планах необходимы два символа.

Важно помнить, что один тип данных char может больше не представляют все символы Unicode.

Оцените статью
recture.ru
Добавить комментарий