如何在JavaScript中正确编码URL?

时间:2010-09-14 19:18:05

标签: javascript urlencode url-encoding encodeuricomponent

我正在开发一个浏览器插件,它将当前页面的URL或任何选定的链接作为参数发送到我们的服务器。 当基本拉丁字母的字符出现在网址中时(如http://en.wikipedia.org/wiki/Vehicle),插件工作正常。但是,当URL包含来自其他字母表的字符(例如http://ru.wikipedia.org/wiki/Коляска时插件不起作用)时,我会使用encodeURIComponent方法,但这似乎无法解决问题。有什么想法吗?

谢谢,

奥利弗。

2 个答案:

答案 0 :(得分:1)

如果您尝试使用非ASCII字符的完整URI并将其转换为其编码形式,则可能需要使用encodeURI / decodeURI。这些保留了特殊的URI字符,例如:/,而不是转义它们;它只会转义非ASCII字符和URI中无效的字符。因此,它们与在地址栏中键入或在<a href="...">中放置URI基本相同(尽管浏览器之间的行为可能有所不同,但并不完全相同)。

encodeURIComponent仅用于编码URI的单个组件,替换URI中有意义的特殊字符,以便您可以将该组件用作更长URI中的查询参数或路径组件。

答案 1 :(得分:0)

这个说它涵盖了UTF-8。 http://www.webtoolkit.info/javascript-url-decode-encode.html。可能会解决您的问题