Использование Unicode
Использование Unicode
Для описания символов сотен языков всего мира, а также других символьных обозначений (например, математических символов) Unicode позволяет использовать три формы кодирования — UTF-8, UTF-16 и UTF-32.
UTF-8
В UTF-8 символы разных диапазонов кодируются последовательностями, состоящими из разного количества байт в соответствии со следующими правилами.
? Символы с кодами в интервале #x0–#x7F кодируются одним байтом, первый бит которого равен нулю.
? Для остальных символов число байт определяется количеством ведущих единиц первого байта последовательности.
? Два первые бита каждого последующего байта равны единице и нулю соответственно.
? Все остальные биты используются для кодирования символа.
В табл. 1.2 для каждого интервала символов показано количество байт, нужных для кодирования символа, форма кодирования и количество бит, доступных для кода.
Таблица 1.2. Формы кодирования символов в UTF-8
Диапазон Кол-во байт Форма кодирования Кол-во бит #x0-#x7F 1 0xxxxxxx 7 #x80-#x7FF 2 110xxxxx 10xxxxxx 11 #x800-#xFFFF 3 1110xxxx 10xxxxxx 10xxxxxx 16 #x10000- #x1FFFFF 4 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 21К примеру, символу "Э" (заглавной русской букве "Э") Unicode присваивает код #x42D или 10000101101 в двоичном представлении. Это значение входит в интервал #x80-#x7ff, значит, для кодирования нужно использовать двух-байтовую форму вида 110xxxxx 10xxxxxx, где символы "x" обозначают 11 бит, доступных для кодировки. Таким образом, данному символу будет соответствовать следующий двоичный код:
11010000 10101101
или #xD0AD в шестнадцатеричном представлении.
Полужирным шрифтом выделены управляющие биты UTF-8 (110 означает, что символ закодирован двухбайтной последовательностью, 10 определяет второй байт последовательности), курсивом — биты кода символа.
Удобство UTF-8 заключается в том, что кодировка первых 127 символов совпадает с широко распространенной 7-битной кодировкой ASCII. Это делает возможным использование уже существующего программного обеспечения для обработки текста в UTF-8, например текстовых редакторов.
UTF-16
Для записи наиболее часто используемых символов с кодами, меньшими #xFFFF, UTF-16 использует двухбайтные последовательности, в которых каждый бит соответствует биту кода. Помимо этого, в UTF-16 могут быть также представлены символы с кодами в диапазоне #10000-#FFFFF. Для кодирования этих символов в UTF-16 применяются пары 16-битных значений в интервале #xD800-#xDFFF (ранее зарезервированные Unicode), называемые суррогатными парами (surrogate pairs). Младшие 10 бит каждого значения отводятся на кодировку символа, что в итоге дает 20 бит, достаточных для записи любого кода, не превышающего #xFFFFF (табл. 1.3).
Таблица 1.3. Формы кодирования символов в UTF-16
Диапазон Кол-во байт Форма кодирования Кол-во бит #x0-#xD7FF 2 xxxxxxxx xxxxxxxx 16 #xD800-#xDFFF Зарезервированы #xE000-#xFFFF 2 xxxxxxxx xxxxxxxx 16 #x10000-#xFFFFF 4 110110xxxxxxxxxx 110110xxxxxxxxxx 20Примеры
Символ "Э" с кодом #x42D будет записан в UTF-16 в виде последовательности из двух байт — #x042D.
Для символа с кодом #x153DC (в двоичном представлении — 10101001111011100) понадобится 4 байта. Он будет записан в виде
1101100001010100 1101101111011100
или #xD854DBDC в шестнадцатеричном исчислении.
Полужирным шрифтом выделены управляющие биты UTF-16, курсивом — биты кода символа.
UTF-32
UTF-32 является самой простой формой кодирования — для каждого символа, вне зависимости от диапазона, используются 4 байта. Такой способ, несомненно, не является самым экономичным с точки зрения объема хранимой информации, но во многих случаях предоставляет определенные преимущества при обработке текста, так как символы не нужно декодировать.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Вступление: стандартные символы и символы Unicode
Вступление: стандартные символы и символы Unicode Прежде чем двигаться дальше, необходимо кратко объяснить, как Windows обрабатывает символы и различает 8-битовые, 16-битовые и обобщенные символы. Эта тема весьма обширна и выходит за рамки данной книги, поэтому мы не будем
Стратегии использования символов Unicode
Стратегии использования символов Unicode Приступая к работе над проектом в Windows, либо для разработки нового программного кода, либо для переноса существующего, программист, в зависимости от требований проекта, может выбрать одну из четырех стратегий.1. Только 8-битовые
Пример: преобразование символов из ASCII в Unicode
Пример: преобразование символов из ASCII в Unicode Программа 2.4 достраивает программу 1.3, в которой использовалась вспомогательная функция CopyFile. С копированием файлов вы уже знакомы, поэтому в данном примере эта операция дополняется преобразованием файла к кодировке Unicode в
Преобразование символов из кодировки ASCII в Unicode
Преобразование символов из кодировки ASCII в Unicode Измерения выполнялись для восьми программ, каждая из которых преобразовывала файл размером 12,8 Мбайт в файл размером 25,6 Мбайт. Соответствующие результаты представлены в табл. В.2.1. Программа atou (программа 2.4) сопоставима с
Использование ip
Использование ip Программа ip предназначена для управления таблицами маршрутизации, в частности, правилами, определенными в них. Выполнение данной программы зависит от значений некоторых подопций опции IP: Advanced Router. Программа ip вызывается следующим образом:ip команда [list |
Поддержка кодировки UNICODE
Поддержка кодировки UNICODE Microsoft ODBC 3.5 определяет два типа драйверов - ANSI и UNICODE. Gemini ODBC-драйвер является по этой классификации драйвером UNICODE. Это дает возможность приложениям, использующим версию UNICODE интерфейса ODBC, обрабатывать данные различных национальных наборов
Функция UNICODE
Функция UNICODE UNICODE (<строковое выражение)возвращает юникод первого символа строкового
13.1. Жесткое кодирование строк в коде Unicode
13.1. Жесткое кодирование строк в коде Unicode ПроблемаТребуется в исходном файле жестко закодировать строки в коде Unicode, т.е. используя расширенный набор символов.РешениеНачинайте строку с префикса L и затем вводите символы в своем редакторе исходных текстов, как вы это
10.10.1. Наборы символов Unicode
10.10.1. Наборы символов Unicode MySQL имеет два набора символов Unicode. Вы можете сохранять текст приблизительно для 650 языков, используя эти наборы символов.Объединения ucs2 (UCS-2 Unicode):ucs2_bin ucs2_czech_ci ucs2_danish_ci ucs2_esperanto_ci ucs2_estonian_ci ucs2_general_ci (default) ucs2_hungarian_ci ucs2_icelandic_ci ucs2_latvian_ci ucs2_lithuanian_ci ucs2_persian_ci
Поиск по юникодным номерам (выбрана опция "by unicode N")
Поиск по юникодным номерам (выбрана опция "by unicode N") 1. Формат ввода одиночного кода: целое число.2. Каждый одиночный код должен быть в пределах от 1 до 64000.3. Для ввода комбинации кодов, одиночные коды должны быть разделены одиночными пробелами.Пример ввода комбинации кодов