【问题标题】:Fastest way to encode cyrillic letters for url为 url 编码西里尔字母的最快方法
【发布时间】:2013-10-16 20:08:47
【问题描述】:

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

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 用于 UTF-8。这就是为什么它是 %D0%91 等等。

【问题讨论】:

    标签: javascript string url hex cyrillic


    【解决方案1】:

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

    【讨论】:

    • 谢谢!这正是我想要的。
    • 哇,我很惊讶这对我提交 webdav 发布请求正文有用。使用 escape 无效。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多