Как правильно кодировать URL в JavaScript? - PullRequest
3 голосов
/ 14 сентября 2010

Я работаю над плагином для браузера, который принимает URL-адрес текущей страницы или любую выбранную ссылку в качестве параметра и отправляет его на наш сервер.Когда символы основного латинского алфавита присутствуют в URL (например, http://en.wikipedia.org/wiki/Vehicle),, плагин работает нормально. Однако, когда URL содержит символы из другого алфавита, такого как http://ru.wikipedia.org/wiki/Коляска, плагин не работает, яиспользуйте метод encodeURIComponent, но это, похоже, не решает проблему. Любая идея?

Спасибо,

Оливье.

Ответы [ 2 ]

1 голос
/ 14 сентября 2010

Возможно, вы захотите использовать encodeURI / decodeURI, если вы пытаетесь взять полный URI с не-ASCII-символами и перевести его в закодированную форму. Они сохраняют специальные символы URI, такие как : и /, вместо экранирования; он экранирует только символы не ASCII и символы, которые недопустимы в URI. Таким образом, они по сути делают то же самое, что набирают в адресной строке или помещают URI в <a href="..."> (хотя поведение может несколько отличаться в разных браузерах и не совсем одно и то же).

encodeURIComponent предназначен для кодирования только одного компонента URI, заменяя специальные символы, которые имеют значение в URI, так что вы можете использовать этот компонент в качестве параметра запроса или компонента пути в более длинном URI.

0 голосов
/ 14 сентября 2010

Этот говорит, что покрывает UTF-8.http://www.webtoolkit.info/javascript-url-decode-encode.html. Может решить вашу проблему

...