为网址编码西里尔字母的最快方法

时间:2013-10-09 12:47:44

标签: javascript string url hex cyrillic

如果您将以下链接复制到浏览器

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

它将显示Wiki文章。 但是,一旦你想将这个链接(或任何其他包含西里尔符号的链接)从浏览器网址复制到记事本中,你就会得到这样的结果:

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或任何其他文字转换为此类代码的最正确或最快的方式是什么,以便它是网址的有效部分? 是否有专门的javascript函数用于此目的?

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

2 个答案:

答案 0 :(得分:14)

您要搜索的功能是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 "Беларусь"

答案 1 :(得分:1)

我猜encodeURI(string)应该是你想要的。只需查看同一问题的现有答案,例如here