找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 103|回复: 0
打印 上一主题 下一主题

解决ajax+php中文乱码的方法详解

[复制链接]

3444

主题

3465

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11142
跳转到指定楼层
楼主
发表于 2018-2-14 08:20:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            中文如果用表单提交的话,不会出现乱码,而用ajax提交就会出现乱码,这是什么原因呢?
我的理解是,我在写源码的时候,一般用记事本写,保存的时候默认用ANSI编码,源码中也没有用“”或“header('Content-Type:text/html;charset=UTF-8');”指定网页编码,于是在浏览器中显示时它的编码被认定为“GB2312”。当前台向后台传递数据的时候,用表单提交的话,前后台之间用“GB2312”编码交流,不会出现乱码;而用ajax提交的话,ajax在前台把要发送的数据编码从“GB2312”转换 成“UTF-8”后再传给后台,然后再把接收到的后台返回的数据当成是 “UTF-8”而把它转换 成“GB2312”后显示在前台页面上,这样乱码就产生了。
如图:

所以要解决乱码,要在后台进行数据编码转换,后台接收到的数据用PHP的mb_convert_encoding("要转换的数据","gb2312","UTF-8")进行转换后存储到数据库。而后台返回到前台的中文数据也要用mb_convert_encoding("要返回的数据","UTF-8","gb2312")转换后返回。
            
            
您可能感兴趣的文章:
  • jsp中 ajax的get请求的中文乱码问题的解决方法
  • jquery.ajax的url中传递中文乱码问题的解决方法
  • ajax请求乱码的解决方法(中文乱码)
  • JQuery的Ajax中Post方法传递中文出现乱码的解决方法
  • ajax获取数据中文乱码问题最简单的完美解决方案
  • JQuery ajax 返回json时出现中文乱码该如何解决
  • 关于Ajax请求中传输中文乱码问题的解决方案
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端