Технические аспекты правильной вёрстки текста, публикуемого в Интернете

13.03.2004
Новиков М.Г.

Содержание:

Отсутствующие символы. Кодировка Unicode
Список кодов наиболее употребительных символов, отсутствующих на клавиатуре

Отсутствующие символы. Кодировка Unicode.

Одной из причин неправильной вёрстки текстов является отсутствие на клавиатуре компьютера некоторых символов, которые заменяются наборщиком на другие, похожие по начертанию. Многие даже не знают, что эти символы в компьютере всё же существуют. Как же их воспроизвести?

При создании интернет-страницы в ее заголовке мы обычно пишем такую строчку:

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

В конце этой строки прописана кодировка текста, содержащегося на странице. Кодировка — это таблица соответствий начертаний символов и их условных числовых кодов. Чаще всего в российском секторе Интернета используется кодировка «windows-1251». Она содержит 256 кодов, соответствующих самым распространенным знакам, цифрам и буквам латинского и русского алфавитов. Каждый код в этой кодировке имеет размер 1 байт. Отсюда и число 256 — именно столько разных комбинаций можно закодировать одним байтом (1 байт = 8 бит — считайте сами).

В этой кодировке действительно не хватает некоторых нужных символов (например, знака минус), а знаки короткого и длинного тире, многоточия и кавычек „лапок“ расположены в запрещенной современным стандартом области (80–9F), и не рекомендованы к применению.

Подобные 1-байтовые кодировки существуют и для многих других языков. Однако помимо них существует кодировка Unicode, в которой каждый символ может кодироваться несколькими байтами. Эта кодировка включает в себя все символы мира. Использовать ее для отображения всей страницы, прописав в <meta> вместо charset=windows-1251 строку charset=UTF-8 не имеет смысла — в этом случае, хотя и можно будет использовать любые символы прям в HTML-коде, но в недрах файла вместо одного байта все русские буквы будут занимать два, что почти в 2 раза увеличит объем страницы с русским текстом, и, соответственно, время её загрузки. Этот способ можно использовать только для одновременного отображения на одной странице достаточно больших кусков текста на разных языках (например русском и японском). Но для вставки отдельных символов используется другой приём.

Интернет-обозреватели, считывая страницу, автоматически переводят её текст из любой 1-байтовой кодировки в кодировку Unicode, после чего страница отображается. Если в тексте страницы обозреватель встречает символьный примитив (подстановку), т.е. комбинацию символов типа &#xY; где Y — шестнадцатеричный код символа в кодировке Unicode, то на экран выводится соответствующий этому коду символ. Благодаря такому механизму мы можем включить в свой однобайтовый текст многие недостающие многобайтовые символы вне зависимости от применяемой на странице кодировки. Единственное условие — изображение этого символа должно быть предусмотрено в используемом шрифте, иначе на его месте возникнет прямоугольник или знак вопроса.

Встречая в HTML-коде страницы символьный примитив (подстановку), обозреватель будет понимать, что данный символ он должен взять именно из Unicode. Однако, если код символа попадает в запрещённый диапазон управляющих кодов Unicode — 80–9F, обозреватель подставляет символ из текущей 1-байтовой кодировки. Однако такие коды использовать не следует, о чём я уже говорил выше. Эти символы могут потеряться при переводе текста в другую кодировку даже в пределах windows-систем, не говоря уже о других платформах.

При кодировании символов я использую шестнадцатеричные числа, поскольку считаю их более уместными (официальная документация символов Unicode использует именно такой формат), однако вы можете использовать и десятичную нотацию. Тогда десятичное число в подстановке не надо предварять буквой «x».

Также, вместо числовых подстановок можно использовать мнемонические, которые по умолчанию вставляет Dreamweaver при вставке специальных символов. Тогда из символьного примитива убирается и символ «#». Но на мой взгляд, мнемоника только запутывают, да и может не поддерживаться некоторыми старыми обозревателями.

О настройке визуального HTML-редактора «Dreamweaver MX 2004» на быструю вставку символьных примитивов можно прочитать в моей статье «Настройка горячих клавиш в DreamWeaver MX 2004 на вставку угловых кавычек, тире и других символов Unicode».

[Вернуться в начало]

Список кодов наиболее употребительных символов, отсутствующих на клавиатуре:
 

Наименование знака

Вид знака

Шестнадцатеричный
код

Неразрывный пробел

 

00A0

Левая кавычка «ёлочка»

«

00AB

Правая кавычка «ёлочка»

»

00BB

Левая кавычка „лапка“

201E

Правая кавычка „лапка“

201C

Тире

2014

Короткое тире

2013

Минус

2212

Многоточие

2026

Знак Евро

20AC

Параграф

§

00A7

Номер
(Знак номера, вводимый с клавиатуры в русском регистре,
в некоторых шрифтах может отображаться неверно.)

2116

Знак охраны авторского права

©

00A9

Символ зарегистрированного товарного знака

®

00AE

Символ товарного знака

2122

Знак градуса

°

00B0

Плюс минус

±

00B1

Стрелка влево

2190

Стрелка вверх

2191

Стрелка вправо

2192

Стрелка вниз

2193

Приблизительно равно

2248

Меньше или равно

2264

Больше или равно

2265

Черта дроби (более наклонная, чем прямой слеш «/»)

2044

Черта деления (более наклонная, чем прямой слеш «/»)

2215

Коды всех остальных символов, предусмотренных в выбранном вами шрифте, вы сможете найти в списке кодов и символов Unicode 4.

Описания всех символов Unicode имеются на официальном сайте www.unicode.org/charts.

[Вернуться в начало]
[Оставить отзыв в гостевой]
Hosted by uCoz