Стандарты html и кодировки файлов

28 July 2011 #design#webdesign#html

Недавно перевел свой сайт на использование html5. Единственно, отказываться от использования тегов div я не стал, в виду того, что IE прошлых версий нормально с тегами языка html5 отказывался работать. Приходилось запускать определенный скрипт для определения всех используемых тегов. Не хотелось перегружать свой сайт дополнительными скриптами.

Получилось все довольно не плохо, код почти соответствовало стандарту, насколько это вообще было возможно, ведь сам стандарт до сих пор окончательно не определен. Но спустя некоторое время я попытался добавить свою статью в сервис отложенного чтения InstaPaper, и с удивлением обнаружил искажение кодировки русских символов.

Стал разбираться. Все соответствовало текущим стандартам, используемый язык был объявлен в начале html-файла, кодировка определена в заголовке файла с помощью определенного ключевого слова. Но проблема оставалась.

Нашел несколько сайтов, в которых данной проблемы не было. Проанализировал код страницы, обратил внимание на то, что использовалась 4 версия языка html.

В связи с этим добавил в заголовок файла строку:

<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

И только после этого все заработало как положено. И в InstaPaper и в Readability стали нормально отображаться заголовки статей.

Чтобы не смешивать различные стандарты языка html, переписал шаблон файла в соответствии со стандартом xhtml 1.0. Так как я отказался от использования тегов html5 и использовал обычные div, изменять пришлось совсем немного.

Было:

<!DOCTYPE HTML>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>

</body>
</html>

Стало:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru_RU">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <title></title>
</head>
<body>

</body>
</html>

Таким образом можно подвести небольшой итог. Стандарт html5 можно использовать уже сейчас, но лишь в том случае, если сайт создается на английском языке. В противном случае придется столкнуться с проблемой определения кодировки файла при использовании сторонних сервисов.

А до момента официального выхода языка html5 будем использовать текущий стандарт языка html.