我们知道在使用Ajax技术与PHP后台交互时,中文乱码是常有的事,JSON作为与XML类似的数据交换格式,在PHP用来进行交互时也会出现中文乱码的情况,解决PHP JSON中文乱码的方法思路其实与PHP Ajax传值中文字符乱码的解决方法类似,下面我以教程形式详细介绍下解决PHP JSON中文乱码的方法。

  为什么PHP与JSON交互时会出现中文乱码?

  由于JSON与JS一样,对于客户端的字符是以UTF8的形式处理,即JSON提交或接受返回的字符是以UTF8形式处理,当与PHP交互时,如果数据库编码、PHP页面编码不采用UTF8格式时,PHP与JSON交互时中文就会产生乱码。

  解决PHP JSON中文乱码的方法

  在知道了PHP与JSON交互产生中文乱码的原因后解决的方法其实就简单很多。

  解决PHP JSON中文乱码方法一:保证数据库、前后台PHP页面编码一致

  最简答的解决PHP JSON中文乱码的方法就是保证数据库编码、PHP页面编码统一采用UTF8格式,对于PHP入门学习者来说建站时数据库最好使用UTF8格式,可减少不少麻烦。

  解决PHP JSON中文乱码方法二:配置使用PHP函数urlencode与JS函数decodeURI()

  当PHP使用JSON与前台JS交互时,在使用json_encode函数之前需要使用urlencode函数进行URL编码,在JS客户端通过JS函数decodeURI()进行URL解码后再读取中文信息。

  注意:当在PHP页面中通过JSON进行交互,比如将数组转换成JSON格式时,首先请使用urlencode函数对数组key和value进行URL编码然后再使用json_encode函数和urldecode函数。

  解决PHP JSON中文乱码方法三:使用字符串编码转换函数

  当由于各种原因,数据库编码、PHP页面编码不一致时,比如现有的数据库编码使用GB2312,这时在使用JSON交互时,就需要使用字符串编码转换函数进行字符集之间的转换。常用的函数有iconv,由于iconv需要PHP配置环境支持,如果不支持,你可以通过自行编写gbk与UTF8编码转换函数实现编码转换,具体可参考PHP Ajax传值中文字符乱码解决教程。

  至此,PHP JSON中文字符乱码的三种解决方法就介绍完了,其实在PHP开发中,遇到类似PHP与AJAX/JS进行交互,产生中文乱码时基本都是使用这些方法,思路是类似的。

  :PHP网站开发教程-leapsoul.cn版权所有,转载时请以链接形式注明原始出处及本声明,谢谢。

此外,在php中直接调用js方法传中文值时,ie会出现乱码,也可以用上述方法解决!

转载于:https://www.cnblogs.com/MRPUNK/archive/2011/09/16/3849321.html

PHP JSON中文乱码解决方法大全相关推荐

  1. php 5.2.17 中文乱码,php5.2 Json中文乱码解决方法

    json_encode对中文的处理是有问题的, 1.不能处理GB编码,所有的GB编码都会替换成空字符. 2.utf8编码的中文被编码成unicode编码,相当于javascript的escape函数处 ...

  2. vs code中文乱码解决方法

    修改 1.(安装方法) 2.显示终端输入数据输出结果(完美解决) 3.修改部分:中文乱码解决方法 第一步: 第二步: 1.(安装方法) 转载于: https:blog.csdn.net/qq_4304 ...

  3. Ubuntu10.04下gFtp2.0.19 远程客户端中文乱码解决方法

    Ubuntu10.04下gFtp2.0.19 远程客户端中文乱码解决方法如下: 1.打开"gFTP-FTP-属性-常规-远程字符集": 2.将远程字符集设置为:gb2312,gbk ...

  4. python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色)

    python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色) 参考文章: (1)python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色) (2)https://www.cnblog ...

  5. Sublime Text 3中文乱码解决方法以及安装包管理器方法

    Sublime Text 3中文乱码解决方法以及安装包管理器方法 参考文章: (1)Sublime Text 3中文乱码解决方法以及安装包管理器方法 (2)https://www.cnblogs.co ...

  6. axios请求GBK页面中文乱码解决方法

    axios请求GBK页面中文乱码解决方法 参考文章: (1)axios请求GBK页面中文乱码解决方法 (2)https://www.cnblogs.com/bjhl/articles/10514038 ...

  7. charles抓包工具的中文乱码解决方法

    charles抓包工具的中文乱码解决方法 参考文章: (1)charles抓包工具的中文乱码解决方法 (2)https://www.cnblogs.com/grimm/p/7494688.html 备 ...

  8. jquery的ajax()函数传值中文乱码解决方法介绍

    jquery的ajax()函数传值中文乱码解决方法介绍 参考文章: (1)jquery的ajax()函数传值中文乱码解决方法介绍 (2)https://www.cnblogs.com/xuxiaosh ...

  9. python打包出现乱码_python解压zip包中文乱码解决方法

    乱码得原因: 由于ZipFile模块导出遇到中文解码不对,windows上会出现,linux是否会出现不知道没测试过. 解决方式: 1. 搞个文件名引射表(不太方便,少量文件夹套用时候还可以) 2. ...

最新文章

  1. 一步步教你轻松学朴素贝叶斯模型算法理论篇1
  2. convert(varchar(10),字段名,转换格式)
  3. python源码学习_【Python学习】Python源码阅读(一)
  4. python 从字符串中提取数字 re.findall()
  5. python函数的传参要求_python中函数传参详解
  6. JavaEE Tutorials (17) - Java消息服务示例
  7. 假如你的老板掉水里了,你的岗位能做什么?
  8. 蜡染印花的跟踪印花与二次整纬
  9. 同步现象 心理学_男生是不是更容易从失恋中走出来?心理学:失恋后悲伤,男女不同...
  10. Spark编程Tips
  11. c语言指针试题嵌入式,嵌入式面试C语言试题「」(2)
  12. 降维系列之 LLE 局部线性嵌入
  13. 数据库E-R图——图书管理系统
  14. 九宫格日记 2017年12月19日(周二)
  15. 栈和队列的共同点和不同点
  16. 最小二乘法简解及空间直线拟合
  17. 为RemoteApp的登录用户(域用户)添加输入法的方法
  18. 《自控力》 第三章读书笔记
  19. 将 ChatGPT 引入你的飞书
  20. 高斯-约当(Gauss-Jordan)消元法

热门文章

  1. 爆米花现象_芯片爆米花现象以及解决办法
  2. AI学习笔记(十一)CNN之图像识别(上)
  3. 关于NLP相关技术全部在这里:预训练模型、信息抽取、文本生成、知识图谱、对话系统...
  4. python列表快速排序_python 实现快速排序
  5. glPushMatrix()和glPopMatrix()以及glLoadIdentity()的理解
  6. load()是python文件操作的函数_python深入(函数,文件操作)
  7. 2019年最新 Python 模拟登录知乎 支持验证码
  8. virtualbox安装增强功能时【未能加载虚拟光盘】
  9. android WebViewClient和WebChromeClient
  10. LAMP-----2、php-5.3.27编译安装