我有一个POSTS AJAX到服务器的页面,通常数据都是Unicode。
这大部分时间都有效,但似乎有时它会破裂,而我似乎无法在任何地方找到答案。我一直在使用encodeURI,但我不确定这是否正确。
以下是代码示例:
$.ajax({
type: "POST",
url: "SomePage.php",
data: "val1=" + encodeURI(unicodeVariable) + "&presentation=" + encodeURI(someUnicodeVariable),
success: function(msg){
}
});
我猜测正在发生的事情有时是一个Unicode字符包括&这打破了它。
使用JQuery为AJAX调用编码Unicode的正确方法是什么?
感谢。
答案 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()自动确保数据编码。