【问题标题】:convert UTF 8 string to URL (ajax)将 UTF 8 字符串转换为 URL (ajax)
【发布时间】:2011-11-16 23:54:41
【问题描述】:

例如,我有一个字符串,它可能包含特殊字符(+=& 等...):

"Írja ide kérdését, majd üssön entert!"

我想将其转换为 XHR 的 URL 可接受字符串(因为 IE 不会自动执行此操作):

"%C3%8Drja%20ide%20k%C3%A9rd%C3%A9s%C3%A9t,%20majd%20%C3%BCss%C3%B6n%20entert!"

有没有 javascript 函数可以解决这个问题?

谢谢!

【问题讨论】:

    标签: javascript jquery ajax utf-8


    【解决方案1】:

    您添加了+ 符号。

    要编码这个加号,使用encodeURIComponent函数:

    encodeURIComponent("+Írja ide kérdését, majd üssön entert!");
    // => "%2B%C3%8Drja%20ide%20k%C3%A9rd%C3%A9s%C3%A9t%2C%20majd%20%C3%BCss%C3%B6n%20entert!"
    

    查看this thread,了解有关escapeencodeURIencodeURIComponent 函数之间差异的更多信息。

    【讨论】:

      【解决方案2】:

      你应该使用encodeURI函数:

      encodeURI("Írja ide kérdését, majd üssön entert!");
      // => "%C3%8Drja%20ide%20k%C3%A9rd%C3%A9s%C3%A9t,%20majd%20%C3%BCss%C3%B6n%20entert!"
      

      【讨论】:

      • 收到后是否需要转换? (在 PHP 中)
      • 我问它是因为获取数据后+号根本没有出现。
      • 服务器端,你可以看看urldecode PHP函数php.net/manual/en/function.urldecode.php
      • 我测试过,encodeURI 不覆盖+singn。 (但这有效:encodeURI(msg).replace("+","%2B")); )
      • 检查我的其他答案,考虑到您的“+”请求
      猜你喜欢
      • 2013-03-02
      • 1970-01-01
      • 2011-12-08
      • 2012-12-05
      • 2012-02-20
      • 2015-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多