如何在JavaScript中正确编码URL?

如何在JavaScript中正确编码URL?,javascript,urlencode,url-encoding,encodeuricomponent,Javascript,Urlencode,Url Encoding,Encodeuricomponent,我正在开发一个浏览器插件,它将当前页面或任何选定链接的URL作为参数发送到我们的服务器。 当基本拉丁字母的字符出现在url中时(如),插件工作正常。然而,当URL包含来自另一个字母表的字符(例如插件不工作)时,我确实使用了encodeURIComponent方法,但这似乎并不能解决问题。有什么想法吗 谢谢 Olivier.这一条说它涵盖了UTF-8。可能会解决您的问题如果您试图获取包含非ASCII字符的完整URI并将其转换为编码形式,则可能需要使用/。它们保留特殊的URI字符,例如:和/,而不是

我正在开发一个浏览器插件,它将当前页面或任何选定链接的URL作为参数发送到我们的服务器。 当基本拉丁字母的字符出现在url中时(如),插件工作正常。然而,当URL包含来自另一个字母表的字符(例如插件不工作)时,我确实使用了
encodeURIComponent
方法,但这似乎并不能解决问题。有什么想法吗

谢谢


Olivier.

这一条说它涵盖了UTF-8。可能会解决您的问题

如果您试图获取包含非ASCII字符的完整URI并将其转换为编码形式,则可能需要使用/。它们保留特殊的URI字符,例如
/
,而不是转义它们;它仅转义非ASCII字符和URI中无效的字符。因此,它们所做的基本上与在地址栏中键入或在
中放入URI相同(尽管不同浏览器的行为可能有所不同,而且并不完全相同)

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

实际上不是有效的URL。当您将其输入现代浏览器时,它将自动对字符进行URL编码。你能更详细地解释一下你在做什么,数据从哪里来,以及什么是
encodeURIComponent
不适合的吗?另外,你所说的“浏览器插件”到底是什么意思?背景: