jquery默认post的编码为utf-8,页面为gbk的话,会乱码
我为dz论坛写了一个插件:客户反馈说:此插件修改标题后会乱码。<br />赶紧查:dz论坛页面为gbk、数据库编码为gbk_chinese_ci,发贴没有问题,那么有问题的肯定是post到后端php的地方出问题了。于是在php端调试,一直都是正常的,一进数据库就乱码了。<br />
于是又想了一下:会不会是jquery.post的时候就是utf-8的,果然,在“请求头”这里发现jquery确实是用utf-8编码post数据的,汗,为啥jquery不取页面编码呢?害惨我了。<br />
<br />
赶紧改代码:<br />
前端可以加:contentType:"application/x-www-form-urlencoded; charset=utf-8",到$.ajax里去,但无法加到$.post里去。由于插件是utf-8/gbk共用的,因此前端页面不能改动,只能在后端判断:<br />
<br />
if($_G['charset'] == 'gbk') {<br />
$subject = mb_convert_encoding($subject, 'gbk');<br />
}<br />
<br />
页:
[1]