Здравствуйте. У меня вот такая проблема - мой сайт сделан целиком на юникоде и я хочу использовать ссылки типа http://mysite.ru/search/словонарусскомязыке и вроде бы при нажатии на ссылку все получается, но только вот когда я ввожу в адресную строку "словонарусскомязыке" самостоятельно, то подчиняясь неизвестной силе, Firefox кодирует символы не в UTF8 а в CP1251 и использование php-функции urldecode мне уже не помогает, т.к. я хочу чтобы посетитель мог самостоятельно вписывать URL, как это сделано, например, в википедии.

Подскажите пожалуйста, в чем я не прав, как от этого избавиться (может заголовки какие попосылать), и почему вводимый руками URL кодируется именно при помощи 1251, а не KOI-8 или чего-нибудь более экзотического, например?

Проблема в том, что одинаковый вроде бы URL в итоге кодируется двумя разными кодировками в зависимости от того ссылка это, или вручную набранный УРЛ.

Ну почему же неизвестной силе? Браузер работает под виндами или под линухом с локалью CP1251, потому и шлёт запрос в этой кодировке. А когда ссылка указана на странице, ему думать не надо, он просто передаёт её как есть.

Anei пишет

Ну почему же неизвестной силе? Браузер работает под виндами или под линухом с локалью CP1251, потому и шлёт запрос в этой кодировке. А когда ссылка указана на странице, ему думать не надо, он просто передаёт её как есть.

Кхм. А ознакомиться с

http://tools.ietf.org/html/rfc3986

или хотя бы

http://en.wikipedia.org/wiki/Percent-encoding#Current_standard

трудно?

Ну почему же неизвестной силе? Браузер работает под виндами или под линухом с локалью CP1251, потому и шлёт запрос в этой кодировке. А когда ссылка указана на странице, ему думать не надо, он просто передаёт её как есть.

Это поведение не соответствует стандартам.

З.Ы. Проблему решил дополнительной проверкой куска URL на кодировку

Balancer, увы, моё знакомство с этим документом не поможет Огнелису вести себя в соответствии со стандартом.

То, что Лис ведёт себя именно так, безусловно, не правильно. Но эти "особенности" приходится учитывать нам :(