• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    AJAX中文乱码PHP中完美解决方法
    最近在做一个项目,遇到AJAX中文乱码问题,经过一个下午的努力终于完美解决,现将心得写下来,希望对那些还困绕在这个问题而头痛不已的人们有所帮助。

    众所周知,使用AJAX传送和接收中文参数时,如果不在客户端和服务器做相应的处理就会出现乱码问题,在网上相应的文章也不少,但是有的情况下很难从中找到符合自己理想的答案,我今天就是在网上找了很多,但是都差不多,讲ASP和JSP的比较多(我是用的PHP),所以到最后都没找到自己满意的答案。

    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");
    您可能感兴趣的文章:
    • 解决phpmyadmin中文乱码问题。。。
    • ajax+php中文乱码解决办法
    • 小结下MySQL中文乱码,phpmyadmin乱码,php乱码 产生原因及其解决方法
    • php url地址栏传中文乱码解决方法集合
    • 探讨PHP JSON中文乱码的解决方法详解
    • PHP页面中文乱码分析
    • php中文乱码怎么办如何让浏览器自动识别utf-8
    • 常见php与mysql中文乱码问题解决办法
    • php中json_encode UTF-8中文乱码的更好解决方法
    • PHP使用MPDF类生成PDF的方法
    • PHP MPDF中文乱码的解决方式
    上一篇:Ajax与JSON的一些学习总结
    下一篇:ajax中文乱码的各种解决办法总结
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    AJAX中文乱码PHP中完美解决方法 AJAX,中文,乱码,PHP,中,完美,