У меня есть несколько страниц PHP, выводящих различные вещи в страницы HTML со следующим кодом.
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
Тем не менее, когда я проверяю с помощью валидатора W3C, возникает следующее:
Кодировка символов, указанная в заголовке HTTP (iso-8859-1), отличается от значения в элементе (utf-8).
Я новичок в PHP, и мне было интересно, могу ли я и должен ли изменить заголовок для файлов PHP, чтобы он соответствовал файлам HTML.
источник
<meta>
тег вам больше не нужен .META
используется, когда HTML-документ не загружается по HTTP (например, с диска).Сначала убедитесь, что сами файлы PHP имеют кодировку UTF-8 .
Метатег игнорируется некоторым браузером. Если вы используете только ASCII-символы, это все равно не имеет значения.
http://en.wikipedia.org/wiki/List_of_HTTP_header_fields
источник
Эта проблема связана с тем, что ваш веб-сервер отправляет заголовок HTTP, который не соответствует указанному вами. Инструкции о том, как заставить сервер отправлять правильные заголовки, см. На этой странице .
В противном случае вы также можете использовать PHP для изменения заголовков, но это необходимо сделать перед выводом любого текста с использованием этого кода:
Дополнительную информацию о том, как отправлять заголовки с помощью PHP, можно найти в документации по функции заголовка .
источник
Вы также можете использовать более короткий путь:
См. RFC 2616 . Допустимо указывать только набор символов.
источник
Content-Type = "Content-Type" ":" media-type
иmedia-type = type "/" subtype *( ";" parameter )
Для правильной реализации вам нужно изменить ряд вещей.
База данных (сразу после подключения):
источник
PHP отправляет заголовки автоматически, если настроено использование внутренней кодировки:
источник