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

Вопрос

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

Ответ

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

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

Кстати говоря

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

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

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