Кодировки символов в 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">
Такой способ неплохо работает для файлов, но при выдаче документа по HTTP его успешность будет зависеть от действий HTTP-сервера, пожелает ли он указать эту информацию в заголовке. Согласно HTTP/1.1, отсутствие указания charset в заголовке приравнивается к использованию набора символов ISO 8859-1.
То есть, приоритетным фактором для браузера по вопросу «в какой кодировке отображать документ»может являться переданный сервером заголовок. В этом случае браузер обязан игнорировать соответственные директивы в теге META.
Настройка заголовков, передаваемых сервером
1. Можно использовать файл .htaccess. В нем нужно указать директивы серверу касательно кодировок по умолчанию:
AddDefaultCharset UTF-8
В приведенном примере кодировкой по умолчанию в заголовках сервера будет назначена UTF-8.
В случае кодировки windows-1251:
AddDefaultCharset windows-1251
Данные директивы файла .htaccess наиболее часто применимы. Но в каждом отдельно взятом случае могут и не сработать. Все зависит от настроек сервера.
Есть менее популярные директивы, действие которых направлено на отключение заголовков сервера. При их отключении браузер будет выбирать кодировку в зависимости от указаний в теге МЕТА.
charsetdisable on
AddDefaultCharset Off
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 • ГОСТ 19768-87 • 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-16 • UTF-8 • список символов ( кириллица ) | ||
Связанные темы → |
интерфейс пользователя • раскладки клавиатур • локаль • перевод строки • шрифт • крокозябры • транслит • нестандартные шрифты • текст как изображение | Утилиты: iconv • recode |
de:Zeichenreferenz en:Character encodings in HTML nl:Character Entity Reference sq:Html kodet e shenjave zh:HTML字符编码
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....