Всегда прописывайте <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Главные вкладки

Аватар пользователя Dimm Dimm 26 марта 2008 в 20:42

Проблема:
Если с моего сайта на (Drupal, utf-8) пользователь IE переходил на сайт с другой кодировкой (cp1251), а потом возвращался на мой сайт, то в IE сбивалась кодировка и все уже посещенные закэшированные страницы отображались кракозябрами (в кодировке cp1251).

Голову сломал прежде чем разобрался.
Дело было вот в чем:

Всегда прописывайте:

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

!!!

Комментарии

Аватар пользователя PVasili PVasili 27 марта 2008 в 0:15

Еще < head > и < body > важны в документе. Не забывайте о них!
Кстати у тёмы ещё есть предрассудки: - насчёт не писать DOCTYPE. Я, как и большинство считаю, что его нужно стараться писать, несмотря на необязательность... Smile

Аватар пользователя Dimm Dimm 27 марта 2008 в 7:29

DOCTYPE было прописано, http сервер выдавал с указанием кодировки, даже < head > и < body > были на месте, а вот приведенного мета тега небыло в используемой мной теме, поэтому возник такой непонятный глюк в IE.

Аватар пользователя botan botan 27 марта 2008 в 12:42

Если у тебя заголовком отсылалась кодировка, то пока ты руками на сменишь её в браузере, она будет той, что отослал сервер.
Мета "Content-Type" это не панацея, это фигня .. на которую давно положили все браузеры Smile

http://biota.ru/trash/one/ - UTF-8 страница. Как выглядит? Читабельно? Хмм
http://biota.ru/trash/two/ - Тоже UTF-8 страница. Ура, всё понятно Smile

И главное заметте! И там, и там указан мета контент тайп. А почему так? А все просто .. воспользуемся сервисом.
http://web-sniffer.net/?url=http%3A%2F%2Fbiota.ru%2Ftrash%2Fone%2F&submi...
http://web-sniffer.net/?url=http%3A%2F%2Fbiota.ru%2Ftrash%2Ftwo%2F&submi...

В первом случае сервер отсылает заголовок в котором указан windows-1251, во втором UTF-8. И эта директива для браузеров является приоритетной.
К сожалению сейчас не могу посмотреть будет ли работать мета в том случае если не отсылается заголовка о кодировке документа .. но мне кажется что будет, хотя может и нет.

Посему считаю данное громогласное заявление:

Quote:
Всегда прописывайте: <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Абсолютно не правильным.

Аватар пользователя Dimm Dimm 27 марта 2008 в 18:23

В том то и дело что я описываю баг IE 6.0 к которому (к багу) данное выражение не применимо:
"Если у тебя заголовком отсылалась кодировка, то пока ты руками на сменишь её в браузере, она будет той, что отослал сервер.
Мета "Content-Type" это не панацея, это фигня .. на которую давно положили все браузеры =)"
Баг заключался в следующем:
Если с моего сайта на (Drupal, utf-8) пользователь IE переходил на сайт с другой кодировкой (cp1251), а потом возвращался на мой сайт, то в IE сбивалась кодировка и все уже посещенные закэшированные страницы отображались кракозябрами (в кодировке cp1251).
То есть IE запоминал кодировку с другого сайта и применял к закэшированным страницам моего сайта.
В результате при повторном посещении моего сайта у пользователей вываливалась абра-кадабра.
Еще раз повторяю - это глюк IE 6.0, я просто описал как с ним бороться.

Аватар пользователя botan botan 28 марта 2008 в 13:26

Мда?
А у меня на нескольких компах в ИЕ нету такого бага, если нормально прописать заголовок кодировки.
Может у вас IE не лицензионный? Biggrin