Кодировки символов в HTML Содержание Определение кодировки...

ДКОИ-8


Компьютерные кодировкиHTMLСтандарты W3C


гипертекстовойHTMLASCIIHTTPWWWзаголовке HTTPКОИ-8файловISO 8859-1windows-1251сайтCMSXMLМнемоники в HTMLUnicode








⚙️  HTML



  • HTML и HTML5

  • Динамический HTML

  • XHTML


  • XHTML Mobile Profile и CHTML

  • Document Object Model

  • Семейство шрифтов

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

  • Мнемоники в HTML

  • Редактор HTML

  • Элементы HTML

  • Семантическая вёрстка

  • Карта изображений

  • Цвета HTML

  • Формы HTML

  • Фреймы HTML


  • HTML5 audio и HTML5 video

  • Canvas

  • Скрипты в HTML

  • Unicode и HTML

  • Браузерный движок

  • Quirks mode

  • Каскадные таблицы стилей


  • W3C и WHATWG

  • Web Storage

  • WebGL

  • Сравнение

    • языков разметки документов

    • браузеров


    • браузерных движков для

      • HTML


      • HTML5

        • HTML5 Canvas

        • HTML5 Media




      • XHTML (1.1)







Язык гипертекстовой разметки HTML используется с 1991 года, но версия 4.0 (1997) была первой, где представление символов, отличных от ASCII (то есть, английского языка), достаточно стандартизировано.




Содержание






  • 1 Определение кодировки средствами HTTP


  • 2 Настройка заголовков, передаваемых сервером


  • 3 Определение кодировки средствами XML


  • 4 Мнемоники HTML и коды Unicode





Определение кодировки средствами 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.



  • «à» = «à» → «à»

  • «α» = «α» → «α»


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









Popular posts from this blog

Щит и меч (фильм) Содержание Названия серий | Сюжет |...

is 'sed' thread safeWhat should someone know about using Python scripts in the shell?Nexenta bash script uses...

Meter-Bus Содержание Параметры шины | Стандартизация |...