使用Unicode进行JQuery AJAX调用。 POST Unicode数据的正确方法?

时间:2010-02-01 18:10:03

标签: jquery ajax unicode

我有一个POSTS AJAX到服务器的页面,通常数据都是Unicode。

这大部分时间都有效,但似乎有时它会破裂,而我似乎无法在任何地方找到答案。我一直在使用encodeURI,但我不确定这是否正确。

以下是代码示例:

    $.ajax({
       type: "POST",
       url: "SomePage.php",
       data: "val1=" + encodeURI(unicodeVariable) + "&presentation=" + encodeURI(someUnicodeVariable),
       success: function(msg){

       }
     });                    

我猜测正在发生的事情有时是一个Unicode字符包括&这打破了它。

使用JQuery为AJAX调用编码Unicode的正确方法是什么?

感谢。

1 个答案:

答案 0 :(得分:6)

这是一个比较所有编码方法的好link

  

最后, encodeURIComponent()   在大多数情况下应该使用方法   在编码单个组件时   URI。这种方法会编码某些   通常会出现的字符   被认为是URI的特殊字符   所以许多组件可能是   包括在内。请注意,此方法可以   不编码'字符,因为它是一个   URI中的有效字符。

encodeURIComponent()也编码“&”符号:

encodeURI("&"); // "&"
encodeURIComponent("&"); // "%26"

或者您可以转换此行:

data: "val1=" + encodeURI(unicodeVariable) + "&presentation=" + encodeURI(someUnicodeVariable),

进入一个对象:

data: {
    val1: unicodeVariable,
    presentation: someUnicodeVariable
}

jQuery将使用encodeURIComponent()自动确保数据编码。