Форум Академгородка, Новосибирск > Загадка воспроизведения кодировки Win1251
Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Загадка воспроизведения кодировки Win1251
Форум Академгородка, Новосибирск > Компьютеры и сети > Программирование > WEB-программирование
ПалСемёныч
Нечто простое и странное, помогите, пож., разобраться.

Имеем HTML - файл. Копируем его на морг в два разных места, глядим результат одним и тем же IE7.0
В одном случае видим кодировку по умолчанию (как и ожидалось) 1251, в другом - UTF8 кракозябра.
Почему так, чего и где не хватает, чтоб и во втором случае сразу на экране была человеческая кодировка,
без необходимости клацать по меню IE?

Ниже - два линка на две (обещанные) копии этого файла, код этого файла и картинка - результат.
TIA

forum.academ.org
www.academ.org


Код
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xml:lang="ru" lang="ru" xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
</head><body>

Кириллица. <br/>
Win1251.<br/>
Latin.

</body></html>
hankin
c www.academ.org заголовок приходит:
Content-type: text/html; charset=utf-8

и файл оттуда кстати в utf отдается.
ПалСемёныч
Цитата(hankin @ 27.01.2009, 22:39) *
c www.academ.org заголовок приходит:
Content-type: text/html; charset=utf-8
и файл оттуда кстати в utf отдается.
То есть сервер Вам передаёт другой заголовок, чем мне??
(вероятно Вы имеете в виду не мой файл, а домашнюю страничку академ орг - речь не об ей, разумеется)

Если мой файл оттуда в utf отдавался, он бы, вероятно, в utf и рисовался. А то IE (и мозилья firefox тоже) почему-то игнорируют тег <meta charset> и как могут натягивают коды 1251 на экран. (на некоторых компах, кста, появляются иероглифы, и кодировка в меню - Japanese)

Всё это не очень понятно, откуда кто и почему. Неуже ли академ орг настолько изощрён, что умеет обмануть Microsoft?
Собственно, workaround я придумал: врукопашную меняю 1251 на utf-8 и сохраняю файл как "utf".
Однако само поведение сервака понять бы интересно. huh.gif
ПалСемёныч
Фантастика. Заработало (самО?)
То есть вдруг с этой секунды оба линка стали возвращать одинаковые странички.
(пусть тема повисит, завтра с работы проверю ещё разок)
hankin
Цитата(ПалСемёныч @ 27.01.2009, 23:41) *
То есть сервер Вам передаёт другой заголовок, чем мне??
(вероятно Вы имеете в виду не мой файл, а домашнюю страничку академ орг - речь не об ей, разумеется)


Я смотрю именно http://www.academ.org/~sv/1.htm
Речь идет о http заголовке content-type (не meta теге), мне сервер присылает utf-8, Вам тоже - я уверен в этом на 99.99%

Цитата(ПалСемёныч @ 27.01.2009, 23:41) *
Если мой файл оттуда в utf отдавался, он бы, вероятно, в utf и рисовался. А то IE (и мозилья firefox тоже) почему-то игнорируют тег <meta charset> и как могут натягивают коды 1251 на экран. (на некоторых компах, кста, появляются иероглифы, и кодировка в меню - Japanese)

Всё это не очень понятно, откуда кто и почему. Неуже ли академ орг настолько изощрён, что умеет обмануть Microsoft?
Собственно, workaround я придумал: врукопашную меняю 1251 на utf-8 и сохраняю файл как "utf".
Однако само поведение сервака понять бы интересно. huh.gif


Файл http://www.academ.org/~sv/1.htm на данный момент приходит именно в utf8
При этом,
в http заголовке: Content-type: text/html;charset=utf8 (верный)
а в meta документа: Content-type:text/html;charset=windows-1251 (неверный)
и уже браузер решает в какой кодировке отображать.

Japanese, вероятно, из автоопределения кодировки в браузере.
ElaSTiC
ANSI
UTF-8
ПалСемёныч
Цитата(anpol @ 28.01.2009, 10:32) *
Если есть HTTP-заголовок указанием кодировки, то браузер должен игнорировать элемент meta charset.

Следовательно, если веб-сервер принудительно указывает кодировку для .html файлов, то на нём нельзя опубликовать .html файл в другой кодировке.

Да.
Спасибо. (Причём браузер, получив перекодированный файл, отказывается менять кодировку через меню View: uft8 прилипает насмерть)
Без влияния потусторонних сил не обошлось, конечно (им тоже спасибо). Всё заработало и стало понятно.
Тема закрыта, файлы, очевидно, удалю со временем.
smile.gif
Basilevs
Отдаваемый Apache сервером HTTP заголовок можно контролировать с помощью файла конфигурации .htaccess. Правда сервер может быть настроен так, чтобы блокировать эту или другие настройки из .htaccess.

Это стандартный, часто возникающий вопрос. Удалять такую тему торопиться не стоит - пусть светится в поиске.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2024 IPS, Inc.