Heim  >  Artikel  >  Backend-Entwicklung  >  php解析JSON中文乱码问题的解决方法

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

WBOY
WBOYOriginal
2016-07-25 08:59:031130Durchsuche
本文介绍下,在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进行交互,产生中文乱码时,大多都是使用这些方法,即可轻松解决问题。



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn