Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  php  >  正文 php解析JSON中文乱码问题的解决方法

php解析JSON中文乱码问题的解决方法

发布时间:2016-04-01   编辑:www.jquerycn.cn
本文介绍下,在php编程中,操作JSON时出现中文乱码的解决方法,有需要的朋友,不妨参考下。

在使用Ajax技术与PHP后台交互时,中文乱码是常有的事,JSON作为与XML类似的数据交换格式,在PHP用来进行交互时也会出现中文 乱码的情况。
解决PHP JSON中文乱码的方法与PHP Ajax传值中文字符乱码的解决方法类似。

下面为大家介绍下具体的几种方法。

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

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

方法二:配置使用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页面编码不一致时,比如现有的数据库编码使用GB2312,这时在使用JSON交互时,就需要使用字符串编码转换函数进行字符集之间的转换。常用的函数有iconv,由于iconv需要PHP配置环境支持,如果不支持,可以通过自行编写gbk与UTF8编码转换函数实现编码转换。

就是这些了,PHP JSON中文字符乱码的三种解决方法,希望对大家有所帮助。
在PHP开发中,遇到类似PHP与AJAX/JS进行交互,产生中文乱码时,大多都是使用这些方法,即可轻松解决问题。

您可能感兴趣的文章:
php网页标题中文乱码如何解决
解决php json_encode中文转码、乱码问题
php解析JSON中文乱码问题的解决方法
php分割GBK中文乱码的解决方法
php pdo编码乱码问题的解决方法
php与mysql遇到乱码时的一般解决思路
php截取中文字符串乱码如何解决呢
Jquery ajax不能解析json对象,报Invalid JSON错误的原因和解决方法
mysql中utf-8编码数据库转换成GBK编码的问题
MySQL与phpMyAdmin中文乱码的解决方法

[关闭]