validator.w3.org сообщает об ошибке разметки - обнаружена кодировка символов «utf-8» - PullRequest
0 голосов
/ 13 июня 2011

validator.w3.org отчеты для www.besaltnlight.ca:

Переопределение кодировки символов в действии! Обнаруженная кодировка символов «utf-8» была подавлена, и вместо нее использовалась «iso-8859-1».

Код php выводит iso-8859-1, и php устанавливает его как набор символов по умолчанию.

Что вызывает эту проблему? Я использую неправильный тип документа?

О, и может ли это вызвать причуды в IE?

Спасибо за вашу помощь.

Gerry

Ответы [ 2 ]

2 голосов
/ 13 июня 2011

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

Поскольку вы выводите UTF-8, вы должны изменить заголовок HTTP на:

Content-type: text/html; charset=utf-8

Поскольку этот заголовок отсутствует, вы заставляете браузер угадывать. Кроме того, метатег должен быть изменен на

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

по той же причине.

1 голос
/ 13 июня 2011

Ваш вывод начинается с метки порядка байтов Unicode, закодированной в UTF-8.

Вероятно, это первые несколько байтов вашего файла PHP или любого файла PHP, включенного в ваш основной файл. Ваш редактор может даже не показывать их. Интерпретируется как ISO-8859-1, начало вывода выглядит как <!DOCTYPE html, которые являются четными двумя метками порядка байтов, одна за другой.

Как сказал jleedev, либо убедитесь, что ваши файлы действительно закодированы в Latin-1, либо объявите кодировку как UTF-8.

...