Есть ли разница указывать header('Content-type: text/html; charset=utf-8'); или ?

Еще я указывал "AddDefaultCharset utf-8", но разницу не понял


Ответы (2 шт):

Автор решения: puffleeck

конечно есть.

такой header насколько помню равносилен указанию myme-type в htaccess, а он насильно заставит браузер открывать любой output как html страницу, бинарник? парсим как html. mp3? тоже парсим как html. прям как css !important =)

а тег только кодировку задает - он срабатывает уже после того как браузер решил именно парсить контент как html\xhtml, а если парсинг не начнется, этот тег и не сработает.

→ Ссылка
Автор решения: NoSkill

В спецификации HTML 4.01 в разделе 5.2.2 «Указание кодировки символов» четко указано, что информация в заголовке HTTP имеет приоритет над meta-тегом. HTML 5 не меняет этого поведения, а лишь дополняет относительно метки порядка байтов (BOM). Meta-тег, определяющий кодировку символов, вступает в силу, если информация о кодировке отсутствует в заголовке HTTP, или при наличии метки порядка байтов (BOM). Вообще, клиент по некоторым причинам может не принять информацию о кодировке в заголовке Content-Type, также HTML-документ может быть открыт локально, так что HTTP-заголовки вообще могут отсутствовать. Когда пользователь сохраняет HTML-документ на своем устройстве, заголовки HTTP не сохраняются. Это основная причина использования Meta-тега для указания кодировки символов. И в этом случае он конечно должен указывать правильную кодировку.

→ Ссылка