Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование Web серверов и Web служб > Русские буквы в адресах страниц


Автор: 1234ru 7.2.2010, 00:57
Товарищи, никак не могу понять, что из себя представляют адреса, содержащие русские буквы.
Да, читал про http://ru.wikipedia.org/wiki/URL#.D0.9A.D0.BE.D0.B4.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_URL.

Вместе с тем, складывается впечатление, что каждый браузер обращается с адресами страниц по-разному: один кодирует, второй не кодирует, третий недокодирует.
Вот такой несложный javascript-код 
Код
<script type="text/javascript">
document.write(document.URL);
</script>

для страницы с адресом (точнее, с куском адреса) вида /ф?q=ф дал в трёх браузерах три разных результата:

IE6: /ф?q=ф
FF3.0: /%D1%84?q=%F4
Chrome4: /%D1%84?q=%D1%84

Особенно порадовал фаерфокс. Который символы в части path закодировал как UTF-8, а в части query - как CP-1251 (вообще полный привет, по-моему).

Пролейте кто-нибудь луч света, пожалуйста.

P.S. Вопрос не совсем по тематике раздела, но более подходящего места не нашел.

Автор: smartov 7.2.2010, 11:27
Цитата(1234ru @  7.2.2010,  00:57 Найти цитируемый пост)
Особенно порадовал фаерфокс. Который символы в части path закодировал как UTF-8, а в части query - как CP-1251

Значит у тебя в странице не проставлена кодировка и FF определил ее как CP1251

p.s. Что еще за document.url? document.location.href используется обычно

Автор: 1234ru 8.2.2010, 22:13
Нет, кодировку UTF-8 поставил.
Кстати. Фаерфоксу все равно, какая кодировка - он всегда GET-параметры в CP-1251 кодирует (мошт потому что я из-под винды сижу).

document.location.href содержит ту же строку, что и document.URL (по крайней мере, у меня в примере), так что это в данном случае не важно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)