Кодировки символов в HTML

Поделись знанием:
Перейти к: навигация, поиск
   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;, например:

  • «&agrave;» → «à»
  • «&alpha;» → «α»
  • «&lt;» → «<»
  • «&gt;» → «>»
  • «&nbsp;» → « » (неразрывный пробел)

В то же время все символы могут быть также закодированы в числовом обозначении с использованием десятичного (&#DD;) или шестнадцатеричного (&#xHHHH;) кода Unicode.

  • «&#224;» = «&#xE0;» → «à»
  • «&#945;» = «&#x3B1;» → «α»

Правильный браузер будет отображать символы, заданные вышеназванным путём, независимо от текущей кодировки документа и, в частности, даже в случае, когда такие символы ею не могут быть охвачены. Таким образом, возможен японский текст в HTML-документе, написанном в Windows-1251, и т. д.

Кодировки символов
Основы алфавиттекст (файлданные) • набор символовконверсия
Исторические кодировки Докомп.: семафорная (Макарова)МорзеБодоМТК-2
Комп.: 6-битнаяУППRADIX-50EBCDIC (ДКОИ-8) • КОИ-7ISO 646
современное
8-битное
представление
символы ASCII (управляющиепечатные) • не-ASCII (псевдографика)
8-битные код.стр. Кириллица: КОИ-8Основная кодировкаMacCyrillic
ISO 8859 1 (лат.)2345 (кир.)6789101112131415 (€)16
Windows 12501251 (кир.)1252125312541255125612571258WGL4
IBM & DOS 437850852855866 «альт.»МИКНИИ ЭВМ
Многобайтные Традиционные DBCS (GB2312) • HTML
Unicode UTF-32UTF-16UTF-8список символов (кириллица)
Связанные темы интерфейс пользователяраскладка клавиатурылокальперевод строкишрифттранслитнестандартные шрифты
Утилиты iconvrecode


К:Википедия:Статьи без источников (тип: не указан)

Напишите отзыв о статье "Кодировки символов в HTML"

Отрывок, характеризующий Кодировки символов в HTML

– Куда, чорт, подвертки запихал? – говорил денщик, бегом следуя за повозкой и шаря в задке.
И этот проходил с повозкой. За этим шли веселые и, видимо, выпившие солдаты.
– Как он его, милый человек, полыхнет прикладом то в самые зубы… – радостно говорил один солдат в высоко подоткнутой шинели, широко размахивая рукой.
– То то оно, сладкая ветчина то. – отвечал другой с хохотом.
И они прошли, так что Несвицкий не узнал, кого ударили в зубы и к чему относилась ветчина.
– Эк торопятся, что он холодную пустил, так и думаешь, всех перебьют. – говорил унтер офицер сердито и укоризненно.
– Как оно пролетит мимо меня, дяденька, ядро то, – говорил, едва удерживаясь от смеха, с огромным ртом молодой солдат, – я так и обмер. Право, ей Богу, так испужался, беда! – говорил этот солдат, как будто хвастаясь тем, что он испугался. И этот проходил. За ним следовала повозка, непохожая на все проезжавшие до сих пор. Это был немецкий форшпан на паре, нагруженный, казалось, целым домом; за форшпаном, который вез немец, привязана была красивая, пестрая, с огромным вымем, корова. На перинах сидела женщина с грудным ребенком, старуха и молодая, багроворумяная, здоровая девушка немка. Видно, по особому разрешению были пропущены эти выселявшиеся жители. Глаза всех солдат обратились на женщин, и, пока проезжала повозка, двигаясь шаг за шагом, и, все замечания солдат относились только к двум женщинам. На всех лицах была почти одна и та же улыбка непристойных мыслей об этой женщине.
– Ишь, колбаса то, тоже убирается!
– Продай матушку, – ударяя на последнем слоге, говорил другой солдат, обращаясь к немцу, который, опустив глаза, сердито и испуганно шел широким шагом.
– Эк убралась как! То то черти!
– Вот бы тебе к ним стоять, Федотов.
– Видали, брат!
– Куда вы? – спрашивал пехотный офицер, евший яблоко, тоже полуулыбаясь и глядя на красивую девушку.
Немец, закрыв глаза, показывал, что не понимает.
– Хочешь, возьми себе, – говорил офицер, подавая девушке яблоко. Девушка улыбнулась и взяла. Несвицкий, как и все, бывшие на мосту, не спускал глаз с женщин, пока они не проехали. Когда они проехали, опять шли такие же солдаты, с такими же разговорами, и, наконец, все остановились. Как это часто бывает, на выезде моста замялись лошади в ротной повозке, и вся толпа должна была ждать.
– И что становятся? Порядку то нет! – говорили солдаты. – Куда прешь? Чорт! Нет того, чтобы подождать. Хуже того будет, как он мост подожжет. Вишь, и офицера то приперли, – говорили с разных сторон остановившиеся толпы, оглядывая друг друга, и всё жались вперед к выходу.
Оглянувшись под мост на воды Энса, Несвицкий вдруг услышал еще новый для него звук, быстро приближающегося… чего то большого и чего то шлепнувшегося в воду.
– Ишь ты, куда фатает! – строго сказал близко стоявший солдат, оглядываясь на звук.
– Подбадривает, чтобы скорей проходили, – сказал другой неспокойно.
Толпа опять тронулась. Несвицкий понял, что это было ядро.
– Эй, казак, подавай лошадь! – сказал он. – Ну, вы! сторонись! посторонись! дорогу!
Он с большим усилием добрался до лошади. Не переставая кричать, он тронулся вперед. Солдаты пожались, чтобы дать ему дорогу, но снова опять нажали на него так, что отдавили ему ногу, и ближайшие не были виноваты, потому что их давили еще сильнее.
– Несвицкий! Несвицкий! Ты, г'ожа! – послышался в это время сзади хриплый голос.
Несвицкий оглянулся и увидал в пятнадцати шагах отделенного от него живою массой двигающейся пехоты красного, черного, лохматого, в фуражке на затылке и в молодецки накинутом на плече ментике Ваську Денисова.
– Вели ты им, чег'тям, дьяволам, дать дог'огу, – кричал. Денисов, видимо находясь в припадке горячности, блестя и поводя своими черными, как уголь, глазами в воспаленных белках и махая невынутою из ножен саблей, которую он держал такою же красною, как и лицо, голою маленькою рукой.