URL с кириллической строкой запросов, не работающей в IE (но работающей в Firefox) - PullRequest
1 голос
/ 06 декабря 2010

На нашем сайте я использую категорию (на русском языке) в строке запроса.

Например: http://www.odinklik.ru/kategoriya.aspx?cat=люди

Если вы вставите эту ссылку в IE8, она будет переведена в cat =????и он не работает. Если я вставляю его в FireFox, он работает.

Это становится еще более странным: тот же URL-адрес доступен с домашней страницы, и если я нажимаю на тот же URL-адрес в IE8 с домашней страницы, он работаетхорошо (если я не нажму кнопку Открыть в новой вкладке, что он вернулся к ????).

Я использую ASP.NET 3.5 (C #)

Ответы [ 2 ]

1 голос
/ 03 мая 2012

Вы должны кодировать URL-адрес имени категории перед добавлением его в строку запроса, а не полагаться на браузер, который сделает это за вас.

Метод HttpServerUtility.UrlEncode должен быть в состояниичтобы обработать эту кодировку для вас.

HttpServerUtility.UrlEncode должен дать вам ссылку http://www.odinklik.ru/kategoriya.aspx?cat=%D0%BB%D1%8E%D0%B4%D0%B8,, которая должна дать вам правильный результат.

(Обратите внимание, что %D0%BB соответствует л, %D1%8E до ю, %D0%B4 до д и %D0%B8 до и. Поскольку значения Unicode для символов кириллицы превышают U+ff, вам потребуется два байта кодирования URL для каждогохарактер.)

1 голос
/ 08 декабря 2010

Вы пытались сделать кодирование на первой странице и декодировать из кириллицы в юникод и обратно?Немного болит голова, но угрюмо сработает.

...