在jquery+php开发系统中,如果前台、后台、js、数据库采用的都是gb2312编码,通过ajax提交数据到数据库的过程需要注意编码问题。
需要指出的是,在非UTF-8编码下,中文字符将不可被encode,结果会出来空值,所以,如果使用gb2312编写PHP代码,那么就需要将包含中文的内容使用iconv或者mb转为UTF-8再进行json_encode。
下面为参考代码:
javascript代码:
$.ajax({
type: "POST",
url : "dispose.php",
dataType:'json',
contentType: "application/x-www-form-urlencoded; charset=utf-8",
data: {
send_val1:val1,
send_val2:val2
},
success: function(data){
$('#result').html(data[0]]);
},
error: function () {
alert("提交异常,请稍候再试!");
}
})
php处理代码:
header('Content-Type:text/html;charset=GB2312');
$send_val1=iconv("utf-8","gb2312",$send_val1);
$send_val2=iconv("utf-8","gb2312",$send_val2);
//对变量进行数据库操作...
//下面是返回数据
$arr = array();
$arr[0]=iconv('gb2312','UTF-8','操作成功');
$arr[1]=iconv('gb2312','UTF-8','返回数据');
echo json_encode($arr);