杰克工作室 发表于 2024-3-1 22:23

jquery默认post的编码为utf-8,页面为gbk的话,会乱码

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