jquery ajax post 中文乱码解决

时间:2023-12-30 20:06:14

jquery ajax post 方式默认传递的是UFT-8字符,即使页面设置了gbk编码也无效。字符传到后台时如果后台设置的gbk或者其他编码,就会出现乱码。解决很容易,将后台页面设置成UTF-8编码,如下:

header("Content-type: text/html; charset=UTF-8");

如果数据库存储的是gbk编码,可以在入库前将编码转换为gbk,代码如下:

$name[$i]=iconv("UTF-8", "GBK", $name[$i]);
$province[$i]=iconv("UTF-8", "GBK", $province[$i]);

注:中文编码的问题一直是web开发一个头疼的问题,我的一点想法是如果前台后台编码不一致,尽量把转码工作放在后台,尤其是前台有框架的情况下。我所了解的是jquery强制使用utf-8编码,即使将前台页面设置为gbk,传送的数据也是utf-8的字符。还有不同浏览器也会有不同的效果。统一字符集的工作放在后端更高效。