最近在编写的PHP项目中用到了Ajax技术,用户体验大有提升,但同时又引入了一个新的问题,就是Ajax返回的responstText里面的中文多半会是乱码,即使我把页面编码指定为UTF-8。
这是因为XMLHttp在处理返回的responstText的时候把responstBody按UTF-8编码进行解码的,如果服务器端送出的数据流的确是UTF-8编码,那么中文字就会正确显示,但如果是GBK或是其他编码则会出现上述情况。
解决的办法是在服务器端返回的数据流中加上一个header,指明送出的数据流是什么编码,这样XMLHttp就不搞乱了。
Php代码
header('Content-Type:text/html; charset=GB2312');