Кто-нибудь знает способ заставить IIS не кодировать URL-адрес
Вы должны кодировать URL. Передача необработанного (š ’(\ xC5 \ xA1) в заголовок HTTP недопустима. Браузер может исправить ошибку до «% C5% A1» для вас, но в этом случае результат не будет отличаться от того, что вы написали «% C5% A1».
Включение необработанного ‘š’ в ссылку не является неправильным, так как браузер должен кодировать его в UTF-8 и кодировать URL в соответствии со спецификацией IRI. Но чтобы убедиться, что это действительно работает, вы должны убедиться, что страница со ссылкой в кодировке UTF-8. Опять же, ручная URL-кодировка, вероятно, наиболее безопасна.
У меня не было проблем с URL-адресами UTF-8, можете ли вы дать ссылку на пример, который не работает?
есть ли у вас ссылка на ссылку, где она подробно описывает, что содержит действительный заголовок HTTP?
Канонически, RFC 2616 . Однако на практике это несколько бесполезно. Критический отрывок:
Слова * TEXT МОГУТ содержать символы из наборов символов, отличных от ISO-8859-1, только при кодировании в соответствии с правилами RFC 2047.
Проблема заключается в том, что согласно правилам RFC 2047, только «атомы» могут содержать «кодированное слово» 2047. ТЕКСТ, в большинстве случаев включенный в HTTP, не может быть выдуман как атом. В любом случае RFC 2047 явно разработан для форматов семейства RFC 822, и хотя HTTP выглядит во многом как формат 822, на самом деле он не совместим; у него есть собственная базовая грамматика с тонкими, но существенными отличиями. Ссылка на RFC 2047 в спецификации HTTP не дает подсказки о том, как можно было бы интерпретировать его каким-либо последовательным образом, и, насколько я знаю, может быть ошибкой.
В любом случае ни один из реальных браузеров не пытается найти способ интерпретировать кодировку RFC 2047 где-либо при обработке HTTP. И хотя байты, не относящиеся к ASCII, определены в RFC 2616 как соответствующие ISO-8859-1, в действительности браузеры могут использовать ряд других кодировок (таких как UTF-8 или любой другой кодировкой системы по умолчанию) в различных местах при обработке HTTP заголовки. Поэтому нельзя полагаться даже на набор символов 8859-1! Не то чтобы это все равно дало бы тебе ...