Я получил запрос от клиента, что он хочет, чтобы иметь возможность ввести строку запроса моего веб-службы с параметрами в адресной строке IE10 и получить результаты обслуживания. Параметры включают в себя строку на иврите, как:кодирование параметров строки запроса в IE10
http://mywebsite.com/service.asmx/foo?param1=123¶m2=מחרוזתבעברית
Мне кажется, что это IE10, в отличии от других (нормальных) браузеров, не кодировать параметры строки запроса - все без AnSi характера, который идет после? метка будет обращена к байту 3f, хотя он кодирует то, что идет до? mark - сам URL.
Например, если я пытаюсь достичь URL (параметр является мнимым, гиперссылка нет, и я не имею никакой связи с сайтом)
http://www.shlomo.co.il/pageshe/sales/רכב-למכירה.asp?param=פאראם
и посмотреть в Wireshark для байтов, которые я посылаю сервер, он показывает мне
Вы можете видеть, что делает заменить еврейскую часть URL с urlencoded строкой, но заменяет Еврейские параметры с ?????, которые «3f-х.
Та же строка в хроме будет закодирован в полном комплекте:
GET http://www.shlomo.co.il/pageshe/sales/%D7%A8%D7%9B%D7%91-%D7%9C%D7%9E%D7%9B%D7%99%D7%A8%D7%94.asp?param=%D7%A4%D7%90%D7%A8%D7%90%D7%9D HTTP/1.1
Я попробовал его на машинах с win7/IE10 и winXPheb/IE8.
настройкиМоей ИЭ (особенно проверяется опция «Всегда показывать закодированные адреса», чтобы увидеть, если это помогает и перезапущено, но не имеет никакого значения):
Я пытался искать вокруг какой-либо информации о проблеме, но не нашел ее.
Мои вопросы:
- Это действительно так, или я что-то отсутствует?
- Является ли это поведение документированным где угодно?
- Есть ли какие-либо настройки в IE/Win, которые разрешают кодировку параметров.
p.s. Конечно, если бы я разрабатывал client/web ui, я бы просто urlencode мой запрос, но мой запрос от клиента было именно вставить запрос в адресную строку IE, поэтому меня интересует это конкретное поведение.
Спасибо.
редактировал вопрос соответственно. Потребовалось время для перезапуска, иначе я бы поставил свой ответ раньше :) – alex440
Отличный вопрос и ответ здесь, хотя я попробовал IE 10 браузера Stack и проверял «Отправить URL UTF-8», чтобы решить проблему. Интересно, правильно ли это сейчас? –