LINUX.ORG.RU
ФорумAdmin

thttpd 2.25, Internet Explorer и UTF8


0

0

Вот такая нездоровая проблема с Internet Explorer: есть страничка, у нее в заголовке указана кодировка KOI8-R, внутри нее есть ссылка, в которой есть KOI8-R русские символы.

Mozilla и Konqueror корректно переходят по ссылке, а Internet Explorer получает ошибку от thttpd, о том, что ссылка не найдена. При этом thttpd указывает ссылку, которая не найдена для Internet Explorer, эта ссылка сформирована в UTF8 почему то.

Т.е. если ссылка была на файл.html, то Internet Explorer запрашивает я└п╟п╧п╩.html.

Я проблему понимаю, но не знаю кто виноват IE или thttpd. С одной стороны страница содержит явное указание KOI8-R, с другой стороны IE в своем пакете в заголовке указывает, что GET идет в кодировке UTF8.

Конфигурационный файл thttpd:
dir=/var/my
chroot
user=myproc
logfile=/var/log/thttpd/thttpd.log
pidfile=/var/run/thttpd/thttpd.pid
globalpasswd
charset=koi8-r
port=80

★★★★★

Указание в качестве charset utf8 ничего не дало Internet Explorer (та же ошибка 1:1), зато у Konqueror первая страница пытается в UTF8 отобразиться (у него видимо кодировка из заголовков сервера важнее кодировки html-странички). В Mozilla все Ок.

saper ★★★★★
() автор топика
Ответ на: комментарий от sdio

Спасибо, но теперь, когда нажимаешь назад, то ссылка в запросе GET отправляется почему то в CP1251. Вручную выставить koi8-r и отключить автоматическое определение пробовал - не помогает.

saper ★★★★★
() автор топика
Ответ на: комментарий от sdio

В пакете запрос IE выглядит так:

GET /test/CP1251text.html HTTP/1.1
Accept: */*
Referer: http://10.0.0.5:80/test/index.html
Accept-Language: ru
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
Host: 10.0.0.5:80
Connection: Keep-Alive
Authorization: Basic bBbbBbBbBBbB

Некоторые поля изменил, чтобы не раскрывать важную информацию.

saper ★★★★★
() автор топика
Ответ на: комментарий от ero-sennin

Вы хотите сказать, что страница:
- для которой сервер в заголовках указал Content-Type: text/html; charset=koi8-r;
- в которой указано <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-r">;
- которая действительно закодирована в koi8-r;
должна содержать ссылки, кодированые в UTF8???

saper ★★★★★
() автор топика
Ответ на: комментарий от saper

Гм. Мне и самому стало интересно. В RFC 3986 написано, что URLы должны бить именно в UTF-8, всегда. И это вполне разумно. Но с другой стороны, браузеры хотят, чтобы ссылки были в кодировке страницы. А серверы я вообще не знаю, чего хотят. %-(

Кто прояснит ситуацию, тому спасибо.

ero-sennin ★★
()
Ответ на: комментарий от ero-sennin

Дописываю поддержку ссылок в UTF8 для thttpd...

saper ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.