Кодировки символов в HTML
Язык гипертекстовой разметки HTML используется с 1991 года, но версия 4.0 (1997) была первой, где представление символов, отличных от ASCII (то есть, английского языка), достаточно стандартизировано.
Содержание
Определение кодировки средствами HTTP
При отображении HTML-страницы браузерами последним нужно сообщить в какой кодировке сохранена страница. Для этого можно воспользоваться двумя методами:
При передаче документа HTML по HTTP (скажем, в WWW) набор символов документа задаётся в заголовке HTTP, например для текста в русском варианте кодировки КОИ-8:
Content-Type: text/html; charset=koi8-r
Информацию о кодировке можно вставить в сам документ HTML, используя тег meta
в раздел <head>
HTML-документа. Например, в случае кодировки UTF-8 тег meta
будет выглядеть следующим образом:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
В стандарте для языка HTML 5 мета тег информирующий браузер о кодировке страницы записывается отлично от правил принятых в более ранних стандартах HTML. Так пример приведенный выше в HTML 5 будет выглядеть следующим образом:
<meta charset="utf-8" />
Такой способ неплохо работает для файлов, но при выдаче документа по HTTP его успешность будет зависеть от действий HTTP-сервера, пожелает ли он указать эту информацию в заголовке. Согласно HTTP/1.1, отсутствие указания charset в заголовке приравнивается к использованию набора символов ISO 8859-1.
То есть, приоритетным фактором для браузера по вопросу «в какой кодировке отображать документ» может являться переданный сервером заголовок. В этом случае браузер обязан игнорировать соответственные директивы в теге META.
Настройка заголовков, передаваемых сервером
1. При использовании сервера Apache можно использовать файл .htaccess. В нём нужно указать директивы серверу касательно кодировок по умолчанию:
AddDefaultCharset UTF-8
В приведенном примере кодировкой по умолчанию в заголовках сервера будет назначена UTF-8.
В случае кодировки windows-1251:
AddDefaultCharset windows-1251
Данные директивы файла .htaccess наиболее часто применимы. Но в каждом отдельно взятом случае могут и не сработать. Все зависит от настроек сервера.
Есть менее популярные директивы, действие которых направлено на отключение заголовков сервера. При их отключении браузер будет выбирать кодировку в зависимости от указаний в теге МЕТА.
charsetdisable on
AddDefaultCharset Off
Зачастую, проблемы отображения кодировок связаны с тем, что устаревшее ПО для Web (например, сайт, CMS и т. д.) использует национальную кодировку в то время как сервер настроен для работы с UTF-8. В этом случае, принудительно указывается язык, кодировка необходимая ПО (например, cp1251) для web-сервера, и (как правило) интерпретатора PHP.
DefaultLanguage ru
AddDefaultCharset windows-1251
php_value default_charset "cp1251"
2. Директива php-кодом:
В начале php-файла можно указать php-код, который передаст инструкции браузеру по выбору кодировки:
<?php header('Content-type: text/html; charset=utf-8')?>
Определение кодировки средствами XML
В XHTML можно также указывать кодировку в преамбуле XML, например:
<?xml version="1.0" encoding="utf-8"?>
Мнемоники HTML и коды Unicode
Символы, имеющие специальные названия (см. Мнемоники в HTML), могут быть закодированы в виде &entity;
, например:
- «à» → «à»
- «α» → «α»
- «<» → «<»
- «>» → «>»
- « » → « » (неразрывный пробел)
В то же время все символы могут быть также закодированы в числовом обозначении с использованием десятичного (&#DD;) или шестнадцатеричного (&#xHHHH;) кода Unicode.
- «à» = «à» → «à»
- «α» = «α» → «α»
Правильный браузер будет отображать символы, заданные вышеназванным путём, независимо от текущей кодировки документа и, в частности, даже в случае, когда такие символы ею не могут быть охвачены. Таким образом, возможен японский текст в HTML-документе, написанном в Windows-1251, и т. д.
Кодировки символов | ||
---|---|---|
Основы | алфавит • текст (файл • данные) • набор символов • конверсия | |
Исторические кодировки | Докомп.: | семафорная (Макарова) • Морзе • Бодо • МТК-2 |
Комп.: | 6-битная • УПП • RADIX-50 • EBCDIC (ДКОИ-8) • КОИ-7 • ISO 646 | |
современное 8-битное представление |
символы | ASCII (управляющие • печатные) • не-ASCII (псевдографика) |
8-битные код.стр. | Кириллица: КОИ-8 • Основная кодировка • MacCyrillic | |
ISO 8859 | 1 (лат.) • 2 • 3 • 4 • 5 (кир.) • 6 • 7 • 8 • 9 • 10 • 11 • 12 • 13 • 14 • 15 (€) • 16 | |
Windows | 1250 • 1251 (кир.) • 1252 • 1253 • 1254 • 1255 • 1256 • 1257 • 1258 • WGL4 | |
IBM & DOS | 437 • 850 • 852 • 855 • 866 «альт.» • МИК • НИИ ЭВМ | |
Многобайтные | Традиционные | DBCS (GB2312) • HTML |
Unicode | UTF-32 • UTF-16 • UTF-8 • список символов (кириллица) | |
Связанные темы | интерфейс пользователя • раскладка клавиатуры • локаль • перевод строки • шрифт • транслит • нестандартные шрифты | |
Утилиты | iconv • recode |
<imagemap>: неверное или отсутствующее изображение |
В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена.
Вы можете отредактировать эту статью, добавив ссылки на авторитетные источники. Эта отметка установлена 30 декабря 2012 года. |
Это заготовка статьи о компьютерных данных. Вы можете помочь проекту, дополнив её. |
Напишите отзыв о статье "Кодировки символов в HTML"
Отрывок, характеризующий Кодировки символов в HTML
– Куда, чорт, подвертки запихал? – говорил денщик, бегом следуя за повозкой и шаря в задке.И этот проходил с повозкой. За этим шли веселые и, видимо, выпившие солдаты.
– Как он его, милый человек, полыхнет прикладом то в самые зубы… – радостно говорил один солдат в высоко подоткнутой шинели, широко размахивая рукой.
– То то оно, сладкая ветчина то. – отвечал другой с хохотом.
И они прошли, так что Несвицкий не узнал, кого ударили в зубы и к чему относилась ветчина.
– Эк торопятся, что он холодную пустил, так и думаешь, всех перебьют. – говорил унтер офицер сердито и укоризненно.
– Как оно пролетит мимо меня, дяденька, ядро то, – говорил, едва удерживаясь от смеха, с огромным ртом молодой солдат, – я так и обмер. Право, ей Богу, так испужался, беда! – говорил этот солдат, как будто хвастаясь тем, что он испугался. И этот проходил. За ним следовала повозка, непохожая на все проезжавшие до сих пор. Это был немецкий форшпан на паре, нагруженный, казалось, целым домом; за форшпаном, который вез немец, привязана была красивая, пестрая, с огромным вымем, корова. На перинах сидела женщина с грудным ребенком, старуха и молодая, багроворумяная, здоровая девушка немка. Видно, по особому разрешению были пропущены эти выселявшиеся жители. Глаза всех солдат обратились на женщин, и, пока проезжала повозка, двигаясь шаг за шагом, и, все замечания солдат относились только к двум женщинам. На всех лицах была почти одна и та же улыбка непристойных мыслей об этой женщине.
– Ишь, колбаса то, тоже убирается!
– Продай матушку, – ударяя на последнем слоге, говорил другой солдат, обращаясь к немцу, который, опустив глаза, сердито и испуганно шел широким шагом.
– Эк убралась как! То то черти!
– Вот бы тебе к ним стоять, Федотов.
– Видали, брат!
– Куда вы? – спрашивал пехотный офицер, евший яблоко, тоже полуулыбаясь и глядя на красивую девушку.
Немец, закрыв глаза, показывал, что не понимает.
– Хочешь, возьми себе, – говорил офицер, подавая девушке яблоко. Девушка улыбнулась и взяла. Несвицкий, как и все, бывшие на мосту, не спускал глаз с женщин, пока они не проехали. Когда они проехали, опять шли такие же солдаты, с такими же разговорами, и, наконец, все остановились. Как это часто бывает, на выезде моста замялись лошади в ротной повозке, и вся толпа должна была ждать.
– И что становятся? Порядку то нет! – говорили солдаты. – Куда прешь? Чорт! Нет того, чтобы подождать. Хуже того будет, как он мост подожжет. Вишь, и офицера то приперли, – говорили с разных сторон остановившиеся толпы, оглядывая друг друга, и всё жались вперед к выходу.
Оглянувшись под мост на воды Энса, Несвицкий вдруг услышал еще новый для него звук, быстро приближающегося… чего то большого и чего то шлепнувшегося в воду.
– Ишь ты, куда фатает! – строго сказал близко стоявший солдат, оглядываясь на звук.
– Подбадривает, чтобы скорей проходили, – сказал другой неспокойно.
Толпа опять тронулась. Несвицкий понял, что это было ядро.
– Эй, казак, подавай лошадь! – сказал он. – Ну, вы! сторонись! посторонись! дорогу!
Он с большим усилием добрался до лошади. Не переставая кричать, он тронулся вперед. Солдаты пожались, чтобы дать ему дорогу, но снова опять нажали на него так, что отдавили ему ногу, и ближайшие не были виноваты, потому что их давили еще сильнее.
– Несвицкий! Несвицкий! Ты, г'ожа! – послышался в это время сзади хриплый голос.
Несвицкий оглянулся и увидал в пятнадцати шагах отделенного от него живою массой двигающейся пехоты красного, черного, лохматого, в фуражке на затылке и в молодецки накинутом на плече ментике Ваську Денисова.
– Вели ты им, чег'тям, дьяволам, дать дог'огу, – кричал. Денисов, видимо находясь в припадке горячности, блестя и поводя своими черными, как уголь, глазами в воспаленных белках и махая невынутою из ножен саблей, которую он держал такою же красною, как и лицо, голою маленькою рукой.