Проверка кодировки символов используя валидатор

W3C Markup Validation Service

Internationalization Checker

Intended audience: пользователи, шифровальщики XHTML/HTML (используя редакторы или скрипты), разработчики скриптов (PHP, JSP, и т.д.), Менеджеры веб-проектов, и каждый, кто хочет узнать, как проверить кодировку символов документа.

Question

Как я могу проверить правильно ли кодирование символов моего документа используя W3C HTML Валидатор?

Answer

Чтобы убедиться, что все получатели документа могут его правильно отобразить и интерпретировать, очень важно правильно указать кодировку символов ('charset'). Один из способов это проверить - использовать W3C Сервис Проверки Разметки. Валидатор обычно определяет кодировку символов с HTTP заголовков и информации в документе. Если валидатор не в состоянии обнаружить кодировку, то её можно будет выбрать на странице результатов валидатора с помощью раскрывающегося меню 'Кодировка' (пример).

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

By the way

Валидатор не может работать без информации о кодировке потому что SGML или XML проверка основана на проверке последовательностей символов в документе, но то, что валидатор принимает в качестве входных данных - просто последовательность байтов. Знание кодирования символов позволяет валидатору превращать байты в символы. В общем, все то же самое действительно для всех других видов приемников, включая браузеры. Если символы определены не правильно, то Веб браузер будет отображать некорректную информацию.

Валидатор делает это путем преобразования из указанного кодирования в UTF-8, и использует UTF-8 внутренне. Если преобразование в UTF-8 не удается потому, что отдельная последовательность байтов не может появиться во входной кодировоке, то валидатор выдает сообщение об ошибке. В UTF-8 для информации на входе, валидатор проверяет действительно ли только UTF-8 последовательности байтов используются.

Обратите внимание, что визуальная проверка веб-страницы с помощью браузера без использования валидатор может провалиться, поскольку: