Я углубился в это и думаю, что знаю, что является причиной этого: HTTP-клиент отправляет URL-адрес на сервер, который не имеет правильной URL-кодировки. В частности, в URL есть недопустимый символ.
Чтобы воспроизвести, вставьте следующее в конце вашего URL в IE8: default.aspx?p=´
Если вы изучите байты, проходящие по проводам (например, используя Fiddler ), вы увидите, что в URL-адресе от клиента к серверу отправляется фактический символ Hex B4. Это недопустимый символ в URL-адресе, поскольку URL-адреса ограничены символами в формате 0x80 (любые коды символов больше 0x80 должны быть экранированы в процентах).
Таким образом, ваш клиент передает недопустимый символ, и ваш сервер (правильно) заменяет поддельный символ на% EF% BF% BD, который является кодировкой UTF-8 для символа замены Unicode (U + 0FFD) ) , что происходит, когда встречается символ, который не имеет эквивалента в локальной кодировке.
AFAIK, это ошибка в IE. Если вы введете тот же URL-адрес в Firefox, Firefox будет правильно кодировать URL-адрес (как% b4 вместо ´). Обратите внимание, что, как и AFAIK, проблема возникает только при ручном вставлении недопустимых символов в адресную строку IE - если тот же символ присутствует в ссылке, IE, похоже, правильно кодирует URL (по крайней мере, в тех случаях, которые я тестировал).
Итак, вы должны выяснить, кто отправляет вам этот поддельный URL, и сказать им, чтобы они начали правильно кодировать свои URL!