探讨PHP JSON中文乱码的解决方法详解

2015-01-24信息快讯网

本篇文章是对PHP中JSON中文乱码的解决方法进行了详细的分析介绍,需要的朋友参考下

我们知道在使用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 JSON中文字符乱码的三种解决方法就介绍完了,其实在PHP开发中,遇到类似PHP与AJAX/JS进行交互,产生中文乱码时基本都是使用这些方法,思路是类似的。

PHP获取当前url的具体方法全面解析
php 批量替换html标签的实例代码
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
php数组去重实例及分析
php三维数组去重(示例代码)
json的键名为数字时的调用方式(示例代码)
PHP反射类ReflectionClass和ReflectionObject的使用方法
php5.3 不支持 session_register() 此函数已启用的解决方法
session在php5.3中的变化 session_is_registered() is deprecated in
php file_get_contents抓取Gzip网页乱码的三种解决方法
php合并js请求的例子
php json与xml序列化/反序列化
php数组转换js数组操作及json_encode的用法详解
php用户注册页面利用js进行表单验证具体实例
php json_encode值中大括号与花括号区别
php jq jquery getJSON跨域提交数据完整版
基于PHP开发中的安全防范知识详解
一些php项目中比较通用的php自建函数的详解
强烈声明: 不要使用(include/require)_once
探讨PHP调用时间格式的参数详解
探讨多键值cookie(php中cookie存取数组)的详解
深入理解PHP几个算法:PHP冒泡、PHP二分法、PHP求素数、PHP乘法表
php定时计划任务的实现方法详解
探讨file_get_contents与curl效率及稳定性的分析
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
php IP转换整形(ip2long)的详解
PHP 常用数组内部函数(Array Functions)介绍
php中serialize序列化与json性能测试的示例分析
php和js如何通过json互相传递数据相关问题探讨
PHP应用JSON技巧讲解
PHP5.4中json_encode中文转码的变化小结
php压缩HTML函数轻松实现压缩html/js/Css及注意事项
PHP gbk环境下json_dencode传送来的汉字
©2014-2024 dbsqp.com