如果您将以下链接复制到浏览器
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等等。
答案 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!