近有G客园的朋友问我关于一个ajax返回中文时乱码,该怎么解决?
首先,我们分析一下为什么会乱码?
用AJAX来GET回一个页面时,RESPONSETEXT里面的中文多半会出现乱码,这是因为xmlhttp在处理返回的responseText的时候,是把resposeBody按UTF-8编码进解码考形成的,如果服务器送出的确实是UTF-8的数据流的时候汉字会正确显示,而送出了GBK编码流的时候就乱了。
其次,解决乱码的方法。
解决的办法就是在送出的流里面加一个HEADER,指明送出的是什么编码流,这样XMLHTTP就不会乱搞了。
PHP:header('Content-Type:text/html;charset=GB2312');
ASP:Response.Charset("GB2312")
JSP:response.setHeader("Charset","GB2312");
就是在处理ajax的页面的代码中,对应加入上面的一句代码。例如
<?php
header('Content-Type:text/html;charset=GB2312');
echo "返回我的中文,不乱码!";
?>