使用Unicode调用JQuery AJAX。发布Unicode数据的正确方法?

使用Unicode调用JQuery AJAX。发布Unicode数据的正确方法?,jquery,ajax,unicode,Jquery,Ajax,Unicode,我有一个将AJAX发布到服务器的页面,数据通常是Unicode 这在大多数情况下都是有效的,但有时它似乎会崩溃,而我似乎在任何地方都找不到答案。我一直在使用encodeURI,但我不确定这是否正确 下面是一个代码示例: $.ajax({ type: "POST", url: "SomePage.php", data: "val1=" + encodeURI(unicodeVariable) + "&presentation=" + enc

我有一个将AJAX发布到服务器的页面,数据通常是Unicode

这在大多数情况下都是有效的,但有时它似乎会崩溃,而我似乎在任何地方都找不到答案。我一直在使用encodeURI,但我不确定这是否正确

下面是一个代码示例:

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

       }
     });                    
我猜有时Unicode字符包含一个&这就破坏了它

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

谢谢。

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

最后,encodeURIComponent() 方法在大多数情况下都应该使用 当对单个组件进行编码时 乌里。此方法将对某些 通常是 被认为是URI的特殊字符 因此,许多组件可能 包括。请注意,此方法不支持 不编码“字符”,因为它是 URI中的有效字符

encodeURIComponent()还对“&”符号进行编码:

或者,您可以仅转换此行:

data: "val1=" + encodeURI(unicodeVariable) + "&presentation=" + encodeURI(someUnicodeVariable),
进入一个对象:

data: {
    val1: unicodeVariable,
    presentation: someUnicodeVariable
}

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

看起来像是将其更改为对象,并确保编码设置为UTF-8。现在我需要做的就是找出为什么mdash字符不能正确地存储在MySQL中。@ryTransmish我意识到这是3年前的事了,但是你最终解决了这个问题吗?我正在处理类似的事情
data: {
    val1: unicodeVariable,
    presentation: someUnicodeVariable
}