16

如果您将下面的链接复制到浏览器中

http://be.wikipedia.org/wiki/Беларусь 

它将显示 Wiki 文章。但是,一旦您想将该链接(或任何其他包含西里尔符号的链接)从浏览器 url 复制到记事本中,您将得到如下信息:

http://be.wikipedia.org/wiki/%D0%91%D0%B5%D0%BB%D0%B0%D1%80%D1%83%D1%81%D1%8C

您可以单击文本中包含西里尔字母的维基百科中的任何链接,然后尝试将其复制到记事本中。

所以,我的问题是:

Беларусь将任何包含西里尔字母的%D0%91%D0%B5%D0%BB%D0%B0%D1%80%D1%83%D1%81%D1%8C文本或任何其他文本转换为此类代码的最正确或最快的方法是什么,因此它是 URL 的有效部分?是否有为此目的的特殊 javascript 函数?

我检查过,它实际上是:西里尔大写字母 Б = (hex) D0 91 for UTF-8。这就是为什么它是 %D0%91 等等。

4

2 回答 2

17

您要搜索的功能是encodeURIComponent.

encodeURIComponent("Беларусь");
// returns "%D0%91%D0%B5%D0%BB%D0%B0%D1%80%D1%83%D1%81%D1%8C"

它的对应物是decodeURIComponent扭转这个过程。

decodeURIComponent("%D0%91%D0%B5%D0%BB%D0%B0%D1%80%D1%83%D1%81%D1%8C");
// returns "Беларусь"
于 2013-10-09T12:52:18.670 回答
2

我想encodeURI(string)应该是你要找的。只需查看相同问题的现有答案,例如这里

于 2013-10-09T12:58:00.577 回答