PHP怎么解决AJAX中文乱码问题-创新互联

这篇文章主要介绍“PHP怎么解决AJAX中文乱码问题”,在日常操作中,相信很多人在PHP怎么解决AJAX中文乱码问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP怎么解决AJAX中文乱码问题”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创新互联建站主要从事成都做网站、网站设计、外贸营销网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务烈山,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575



AJAX的中文乱码可以大概分为两中,第一种是向服务器端发送中文参数时(xmlhttp.open(“getpost”,url,true)),服务器端接收到的为乱码,这个也是我今天遇到的问题,没做处理之前,在IE里是正常的,但是在Firefox里面就出现了乱码,我先把接收到参数输出到一个文本里,没有发现什么问题,郁闷了,然后我就把查询语句在输出来观察(我这里是要从数据库里查出与参数相关的东西),终于发现问题,IE和Firefox输出的参数不一样,虽然汉字上都一样,但是和前后连接上有细小的区别,于是认定了是编码问题,在网上查找了相关资料,都没能解决问题,但是得到一些启示,因为AJAX发送数据都是采用UTF-8编码的方式发送的,所以要在服务器端进行编码转换(我这里页面是采用GB2312编码的,如果是采用UTF-8的话应该不会有这步的问题),所以我在服务器端进行了UTF-8转GB2312,

$str=iconv("UTF-8","GB2312",$str);

然后测试,在Firefox上顺利解决了问题,以为大公告成了,可是再到IE下测试,发现IE又出现了问题,服务器端接收到的参数没值,这下就郁闷了,突然看到发送头设置了setRequestHeader("Content-Type","application/x-www-form-urlencoded");,就找到问题所在了,然后就在发送那里进行了参数编码:


复制代码 代码如下:


geturl=encodeURI(geturl);
geturl=encodeURI(geturl); //两次也可以写成geturl=encodeURI(encodeURI(geturl));
xmlhttp.open("GET",geturl,true);



然后再到服务器端进行URL解码:


复制代码 代码如下:


$str=urldecode($str); //解码
$ str =iconv("UTF-8","GB2312",$ str); //编码转换



注意:解码必须在编码转换前面,不然得不到正确值
保存测试,IE和Firefox都能正常了。
第二种就是服务器端向客户端输出中文时出现乱码,这类问题网上的答案就比较多了,也都能解决,为了避免各位再去查找,我在这里就COPY下J
原因:AJAX在接收responseText或responseXML的值的时候是按照UTF-8的格式来解码的,如果服务器段发送的数据不是UTF-8的格式,那么接收responseText或responseXML的值有可能为乱码。

解决办法:

在服务器指定发送数据的格式:
在jsp文件中:
response.setContentType("text/text;charset=UTF-8");//返回的是txt文本文件
或是
response.setContentType("text/xml;charset=UTF-8");//返回的xml文件
PHP:header('Content-Type:text/html;charset=GB2312');
ASP:Response.Charset("GB2312")
JSP:response.setHeader("Charset","GB2312");

到此,关于“PHP怎么解决AJAX中文乱码问题”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!

文章名称:PHP怎么解决AJAX中文乱码问题-创新互联
URL地址:https://www.cdcxhl.com/article14/coopge.html

成都网站建设公司_创新互联,为您提供定制开发外贸网站建设动态网站服务器托管网页设计公司网站营销

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设公司