我们知道在使用Ajax技术与PHP后台交互时中文乱码是常有的事JSON作为与XML类似的数据交换格式在PHP用来进行交互时也会出现中 文乱码的情况解决PHP JSON中文乱码的方法思路其实与PHP Ajax传值中文字符乱码的解决方法类似下面我以教程形式详细介绍下解决PHP JSON中文乱码的方法
为什么PHP与JSON交互时会出现中文乱码?
由于JSON与JS一样对于客户端的字符是以UTF的形式处理即JSON提交或接受返回的字符是以UTF形式处理当与PHP交互时如果数据库编码PHP页面编码不采用UTF格式时PHP与JSON交互时中文就会产生乱码
解决PHP JSON中文乱码的方法
在知道了PHP与JSON交互产生中文乱码的原因后解决的方法其实就简单很多
解决PHP JSON中文乱码方法一保证数据库前后台PHP页面编码一致
最简答的解决PHP JSON中文乱码的方法就是保证数据库编码PHP页面编码统一采用UTF格式对于PHP入门学习者来说建站时数据库最好使用UTF格式可减少不少麻烦
解决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页面编码不一致时比如现有的数据库编码使用GB这时在使用JSON交互时就需要使用字符串编码转换函数进行字符集之间的转换常用的函数有iconv由于iconv需要PHP配置环境支持如果不支持你可以通过自行编写gbk与UTF编码转换函数实现编码转换
至此PHP JSON中文字符乱码的三种解决方法就介绍完了其实在PHP开发中遇到类似PHP与AJAX/JS进行交互产生中文乱码时基本都是使用这些方法思路是类似的