% C3% 83% C2% A9
Это слишком закодировано: строка записывается как UTF-8, читается обратно как ISO-8859-1, затем снова записывается как UTF-8, а затем кодируется в шестнадцатеричном формате!
% E9
Это слишком мало закодировано: строка записана в виде простого ISO-8859-1 и закодирована в шестнадцатеричном формате. Это нормально, если PHP-скрипт, с которым вы разговариваете, ожидает ISO-8859-1, но современные веб-системы должны поддерживать UTF-8, и в этом случае последовательность должна выглядеть следующим образом:
% C3% A9
(Это правильно закодировано!)
Я использую Server.URLEncode в классическом ASP
Классический ASP, к сожалению, имеет некоторые серьезные недостатки в обработке Unicode. Вы можете установить @ CODEPAGE = 65001 (и Response.Charset = "UTF-8") для создания страниц UTF-8, но ваш внутренний тип строки все еще кодируется в системной кодовой странице, и любые данные, извлекаемые из представлений формы или базы данных, будут быть прочитанным в эту кодировку.
Таким образом, вы можете использовать URLEncode () в виде литерала chr 233, чтобы получить правильный вывод, ОК, но если вы получаете данные из 'é' в кодировке UTF-8 при отправке формы, вы получите ' Ã © '- последовательность UTF-8, неправильно интерпретированная как ISO-8859-1 (фактически cp1252, эквивалент Windows).