最近的项目中JS库改为全部使用jQuery,其中使用jQuery的Ajax提交中文乱码问题十分的心烦,经过多番Google和自己确认后,其实只需要改两个地方即可:
1 增加contentType, 值为:application/x-www-form-urlencoded; charset=utf-8
特别要注意要加上charset=utf-8来指明编码是使用utf-8,这里我还特别查过jQuery的API文档中,对于contentType默认值是application/x-www-form-urlencoded ,所以会出现乱码
2 增加type,值为:post
这里在jQuery的API文档中描述,默认值是get,经过测试,使用get无法解决中文乱码问题。
这样提交到后台程序的数据就是经过utf8编码,可以解决乱码的问题,再次肯定解决乱码就是必须保证所有的编码都统一为utf-8。
最终代码可以参考如下:
$.ajax({
url : "sample.php",
contentType: "application/x-www-form-urlencoded;charset=UTF-8",
type: "post",
data : {name : name},
dataType : "json",
success : function(data) {
//成功后执行的程序代码
}
});
谨以此为记!