как работает firefox, кодирующий URL в адресной строке - PullRequest
0 голосов
/ 20 сентября 2011

Когда я использовал Firefox, я обнаружил, что он будет кодировать китайские символы в адресной строке, что затрудняет декодирование.

Exemaple:

В коде js у меня есть кодировка URL:

location.href="http://xxx/query.html?type="+encodingURI('中文');

Тогда в адресной строке Firefox покажет мне это:

http://xxx/query.html?type=中文

но, если я введу ключ "Enter" в адресе, что означает перезагрузку этой страницы, то адрес изменится на

http://xxx/query.html?type=%D6%D0%CE%C4

Тогда я не могу декодировать "=% D6% D0% CE% C4". Поскольку он не может быть декодирован с использованием

decodeURI('%D6%D0%CE%C4');

На самом деле encodeURI("中文")="%E4%B8%AD%E6%96%87"

Интересно, как работает Firefox и как декодировать параметр?

Ответы [ 2 ]

4 голосов
/ 20 сентября 2011

Firefox не ведет себя так для меня.Он не кодирует эти символы в URL, когда я нажимаю клавишу ввода.

Кстати, правильная кодировка UTF-8 中文 равна %E4%B8%AD%E6%96%87.

encodeURIComponent("中文");
"%E4%B8%AD%E6%96%87"

decodeURIComponent("%E4%B8%AD%E6%96%87");
"中文"

Например: http://google.com? Q = 中文 .

0 голосов
/ 20 сентября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...