Технические аспекты правильной вёрстки текста, публикуемого в Интернете |
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.