Отсутствующие
непосредственно на клавиатуре символы — постоянный источник неприятностей для
веб-дизайнеров. В стандартной для HTML кодировке Latin-1
(стр. 17) просто нет некоторых позарез нужных для набора даже английского
текста символов, а до универсальной поддержки Unicode во
всех документах, броузерах, шрифтах и операционных системах пока еще очень
далеко. И уж конечно, ничуть не лучше дела обстоят в мире кириллицы с ее
многочисленными несовместимыми друг с другом кодировками.
Первым
приходящий в голову способ вызвать нужный в тексте, но отсутствующий на
клавиатуре символ — посмотреть его номер в каком-нибудь шрифте и сослаться на
него из HTML с помощью числовой подстановки (например, написав
© для вызова символа копирайта, стр. 29). Однако этот метод очень
ненадежен — он полагается, во-первых, на то, что у всех шрифтов на всех
платформах этот символ расположен в одной и той же позиции (что далеко не
всегда соответствует действительности), а во-вторых, на то, что броузер будет
интерпретировать код именно как номер символа в текущем шрифте (что, вообще
говоря, противоречит
231
стандарту).
Поэтому гораздо предпочтительней пользоваться мнемоническими подстановками
(например, &сору; для того же символа копирайта). Однако несовершенство
броузеров и сложившаяся (так и хочется сказать «порочная») практика
русификации HTML-документов накладывает серьезные
ограничения и на этот способ.
• Длинное тире (англ.
emdash) как
знак препинания не имеет ничего общего с дефисом (hyphen) — в идеале оно должно
выглядеть именно так, как в этом предложении. Из кодировок кириллицы (стр. 16)
длинное тире есть только у Unicode, CP1251
и кодировки Макинтоша, поэтому им нельзя пользоваться в текстах, автоматически
перекодируемых из/в КОИ8 или СР866. Хотя в Windows
почти все шрифты (как с кириллицей, так и без) имеют длинное тире по адресу 151
(шестнадцатеричное 97), пользоваться им на законных основаниях нельзя и в
английских текстах — в официально предписанной для HTML
кодировке Latin-1 (как и в Unicode)
это знакоместо объявлено «неиспользуемым» (стр. 17). Увы, пока что единственный
стопроцентно надежный способ воспроизвести длинное тире в HTML-тексте
— набрать два или три дефиса подряд: --или ---.
Напомню,
что в английском наборе длинное тире должно стоять вплотную к соседним
символам, а в русском — отбиваться неразрываемым пробелом слева и обычным
справа.
•
То же самое можно сказать и о коротком тире (англ. еп dash). В
русской типографской традиции этого символа не было, но в английском наборе им
принято пользоваться для численных интервалов, например: 1998-2000 (короткое
тире не только чуть короче длинного, но и приподнято над строкой до середины
высоты цифровых символов). В Windows большинство шрифтов имеют
этот символ по адресу 150 (шестнадцатеричное 96); в HTML,
однако, его приходится опять-таки имитировать одиночным или двойным дефисом.
Надо сказать, что в HTML 4 уже предусмотрены символьные коды
— и – для длинного и короткого
тире соответственно. Однако ссылаются они на кодовые позиции этих символов в Unicode —
и увы, ни MSIE, ни NC в
четвертых версиях еще и не думают эти коды поддерживать (хотя MSIE
понимает их числовые Unicode-подстановки — и
–).
232
• Кавычки — тема,
заслуживающая отдельной книги. Всего существует четыре типа кавычек:
«французские» (иначе называемые «елочки»), „немецкие" („лапки"),
"английские обычные, или двойные," и 'английские одинарные.' В
русском языке традиционно применяются французские «елочки», а для «кавычек
„внутри" кавычек» — немецкие „лапки". В английском языке пользуются
"английскими двойными" для кавычек первого уровня и 'английскими
одинарными' для "кавычек 'внутри' кавычек." Соответственно,
английские кавычки в русском тексте, так же как и обозначение дюйма "
вместо полагающихся кавычек в английском тексте, — следствие либо каких-то
технических ограничений при наборе, либо (увы, чаще) необразованности того, кто
этот текст оформлял.
К
сожалению, в HTML вам вряд ли удастся щегольнуть знанием
всех кавычечных тонкостей. В Latin-1 предусмотрены только
французские «елочки», для вызова которых стандартный HTML
имеет мнемонические подстановки « и ».
Однако на практике этими кодами нельзя пользоваться именно там, где они больше
всего нужны, — в русском языке: из всех кодировок кириллицы «лапки» есть
только в Unicode, CP1251
и в кодировке Макинтоша. И хотя в теории броузер обязан относить мнемонические
подстановки к набору символов языка HTML (т. е. Latin-1),
а не к текущей кодировке документа, на практике мысль украсить русский текст
«елочками» можно оставить до тех пор, пока все броузеры не научатся правильно
разбираться с кодировками и мнемоническими подстановками.
Еще
печальнее ситуация с немецкими и английскими кавычками. Их нет даже в Latin-1,
и надеяться остается лишь на Unicode, — точнее, на ссылающиеся
на символы Unicode подстановки „
(„), “ ("), ”
("), ‘ (') и ’
('). Эти символьные коды введены в HTML 4, но еще не
поддерживаются графическими броузерами.
Кстати,
имейте в виду, что в английском языке точки и запятые принято вносить внутрь
кавычек, даже если по смыслу они должны стоять снаружи: "так," а не
"так".
символьными
кодами &сору; и § соответственно. Напротив,
символ торговой марки (™), также присутствующий в большинстве шрифтов, в Latin-1
отсутствует, так что вместо ™ предпочтительнее писать
<SUP><SMALL>tm</SMALL></SUP>.
• Знак
номера (№) был заимствован в русский язык из французского, так что в
нерусифицированных шрифтах (чей набор символов ориентирован больше на англоязычную
типографию) он отсутствует. (В Unicode он есть, но символьного
кода в HTML 4 для него не предусмотрено.) Тем не менее символ этот
присутствует во всех кодировках русского языка, и если вы ориентируетесь
только на русскоязычную аудиторию и при этом вполне уверены в способности
автоматического перекодировщика на вашем сервере правильно обрабатывать этот
символ, им можно пользоваться просто как буквой (т. е. вставлять его в текст
напрямую, без каких бы то ни было конструкций языка HTML).