Чтение онлайн

на главную - закладки

Жанры

Технология XSLT

Валиков Алексей Н.

Шрифт:

К примеру, символу "

Э
" (заглавной русской букве "
Э
") 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 байта. Такой способ, несомненно, не является самым экономичным с точки зрения объема хранимой информации, но во многих случаях предоставляет определенные преимущества при обработке текста, так как символы не нужно декодировать.

Коды некоторых символов Unicode

В таблицах символов Unicode кодируются не только символы и знаки различных языков, но также и некоторые управляющие символы, например, неразрываемый пробел (no-break space), табуляция, перенос строки и так далее. Коды некоторых из этих символов, часто использующихся в XML-технологиях, мы приводим в табл. 1.4.

Таблица 1.4. Unicode-коды некоторых символов

Код Обозначение Описание
#х9
[НТ]
Горизонтальная
табуляция (horizontal tabulation)
#xA
[LF]
Перевод строки (line feed)
#xD
[CR]
Возврат каретки (carriage return)
#x20
[SP]
Пробел (space)
#x21
!
Восклицательный знак (exclamation sign)
#x22
"
Двойные кавычки (quotation mark)
#x26
&
Амперсант (ampersand)
#x27
'
Апостроф или одинарные кавычки (apostrophe)
#x3C
<
Знак "меньше" или левая угловая скобка (less-than sign)
#x3F
?
Вопросительный знак (question mark)
#xA0
[NBSP]
Неразрываемый пробел (no-break space)

Коды многих других символов можно найти на Web-сайте Unicode Consortium в разделе Code Charts: http://www.unicode.org/charts/.

Базовые продукции XML

Теперь, когда мы разобрали модель символов Unicode, которая используется в XML, можно дать EBNF-определения основных базовых конструкций языка — символов, имен, именных токенов и их последовательностей.

В XML можно использовать любые символы Unicode, кроме суррогатных блоков и символов с кодами

#xFFFE
и
#xFFFF
:

[2] Char ::= #x9 | #xA | #xD | [#x20 - #xD7FF]

| [#хЕ000 - #xFFFD) | [#х10000 - #x10FFFF]

Для удобства все множество символов разделено на несколько категорий.

□ Буквы, которые соответствуют продукции

Letter
, в свою очередь, делятся на основные (
BaseChar
) и идеографические (
Ideographic
). Буквы относятся к алфавитам, из которых состоят слова различных языков. Продукции букв чрезвычайно просты, но громоздки, поскольку перечисляют символы различных алфавитов. Читатель может легко найти их в технической рекомендации XML по адресу http://www.w3.org/TR/REC-xml.html под номерами [84] (
Letter
), [85] (
BaseChar
) и [86] (
Ideographic
).

□ Цифры, которые составляют в различных культурах числа. Цифры определяются продукцией

Digit
с номером [88].

□ Модифицирующие символы (

CombiningChar
), которые изменяют написание или звучание символов, как, например, #x308 — двойная точка сверху символа, которая используется для обозначения умляута в немецком и для замены
e
на
ё
в русском языке. Продукция
CombiningChar
имеет номер [87].

□ Символы расширения (

Extender
). Продукция
Extender
имеет порядковый номер [89].

Поделиться:
Популярные книги

Адвокат

Константинов Андрей Дмитриевич
1. Бандитский Петербург
Детективы:
боевики
8.00
рейтинг книги
Адвокат

СД. Том 15

Клеванский Кирилл Сергеевич
15. Сердце дракона
Фантастика:
героическая фантастика
боевая фантастика
6.14
рейтинг книги
СД. Том 15

Недотрога для темного дракона

Панфилова Алина
Фантастика:
юмористическое фэнтези
фэнтези
сказочная фантастика
5.00
рейтинг книги
Недотрога для темного дракона

Девочка для Генерала. Книга первая

Кистяева Марина
1. Любовь сильных мира сего
Любовные романы:
остросюжетные любовные романы
эро литература
4.67
рейтинг книги
Девочка для Генерала. Книга первая

Имя нам Легион. Том 5

Дорничев Дмитрий
5. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 5

Студиозус 2

Шмаков Алексей Семенович
4. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
5.00
рейтинг книги
Студиозус 2

Ох уж этот Мин Джин Хо 4

Кронос Александр
4. Мин Джин Хо
Фантастика:
попаданцы
дорама
5.00
рейтинг книги
Ох уж этот Мин Джин Хо 4

Неправильный боец РККА Забабашкин 3

Арх Максим
3. Неправильный солдат Забабашкин
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Неправильный боец РККА Забабашкин 3

Сердце Дракона. Том 12

Клеванский Кирилл Сергеевич
12. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
7.29
рейтинг книги
Сердце Дракона. Том 12

Не грози Дубровскому! Том III

Панарин Антон
3. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том III

Холодный ветер перемен

Иванов Дмитрий
7. Девяностые
Фантастика:
попаданцы
альтернативная история
6.80
рейтинг книги
Холодный ветер перемен

Город Богов

Парсиев Дмитрий
1. Профсоюз водителей грузовых драконов
Фантастика:
юмористическая фантастика
детективная фантастика
попаданцы
5.00
рейтинг книги
Город Богов

Идеальный мир для Лекаря 12

Сапфир Олег
12. Лекарь
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 12

Ваше Сиятельство

Моури Эрли
1. Ваше Сиятельство
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Ваше Сиятельство