php中json_encode中文编码问题分析


Posted in PHP onSeptember 13, 2011

例如:'胥'经过json_encode处理后变为'\u80e5',最终的json中中文部分被替换为unicode编码。我们要解决的就是将对象转换为json并保证对象内部的中文在json中仍然是以正常的中文出现,现在看来只使用json_encode是不能达到目的的。

我的解决方法:先将类中的中文字段进行url编码(urlencode),然后再对对象进行json编码(jsonencode),最后url解码(urldecode)json,即最终的json,里面的中文依旧是那个中文!
测试代码如下:

<?php 
class myClass { 
public $item1 = 1; 
public $item2 = '中文'; 
function to_json() { 
//url编码,避免json_encode将中文转为unicode 
$this->item2 = urlencode($this->item2); 
$str_json = json_encode($this); 
//url解码,转完json后将各属性返回,确保对象属性不变 
$this->item2 = urldecode($this->item2); 
return urldecode($str_json); 
} 
} 
$c = new myClass(); 
echo json_encode($c); 
echo '<br/>'; 
echo $c->to_json(); 
echo '<br/>'; 
echo json_encode($c); 
echo '<br/>'; 
echo json_encode('胥'); 
?>

程序输出结果:
{"item1":1,"item2":"\u4e2d\u6587"} 
{"item1":1,"item2":"中文"} 
{"item1":1,"item2":"\u4e2d\u6587"} 
"\u80e5"

希望本文起到抛砖引玉的作用,收集大家更好的解决方法……!
PHP 相关文章推荐
用PHP实现WEB动态网页静态
Oct 09 PHP
对squid中refresh_pattern的一些理解和建议
Apr 17 PHP
在IIS7.0下面配置PHP 5.3.2运行环境的方法
Apr 13 PHP
PHP开发环境配置(MySQL数据库安装图文教程)
Apr 28 PHP
简单的PHP缓存设计实现代码
Sep 30 PHP
PHP实现手机归属地查询API接口实现代码
Aug 27 PHP
基于PHP CURL获取邮箱地址的详解
Jun 03 PHP
PHP连接MySQL查询结果中文显示乱码解决方法
Oct 25 PHP
WordPress中注册菜单与调用菜单的方法详解
Dec 18 PHP
PHP保存session到memcache服务器的方法
Jan 19 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
May 11 PHP
PHP常用函数之base64图片上传功能详解
Oct 21 PHP
PHP pathinfo()获得文件的路径、名称等信息说明
Sep 13 #PHP
PHP获取MAC地址的函数代码
Sep 11 #PHP
PHP内核介绍及扩展开发指南―基础知识
Sep 11 #PHP
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
Sep 11 #PHP
20个PHP常用类库小结
Sep 11 #PHP
php各种编码集详解和以及在什么情况下进行使用
Sep 11 #PHP
php正则表达式(regar expression)
Sep 10 #PHP
You might like
声音就能俘获人心,蕾姆,是哪个漂亮小姐姐配音呢?
2020/03/03 日漫
限制ckeditor上传图片文件大小的方法
2013/11/15 PHP
利用PHP如何统计Nginx日志的User Agent数据
2019/03/06 PHP
PHP日期和时间函数的使用示例详解
2020/08/06 PHP
Prototype ObjectRange对象学习
2009/07/19 Javascript
javascript 用原型继承来实现对象系统
2010/03/22 Javascript
js实现的二级横向菜单条实例
2015/08/22 Javascript
jQuery无刷新切换主题皮肤实例讲解
2015/10/21 Javascript
js实现文字垂直滚动和鼠标悬停效果
2015/12/31 Javascript
Jquery zTree 树控件异步加载操作
2016/02/25 Javascript
jquery表单验证插件formValidator使用方法
2016/04/01 Javascript
详解如何在Angular中快速定位DOM元素
2017/05/17 Javascript
jQuery实现切换隐藏与显示同时切换图标功能
2017/10/29 jQuery
详解javascript 变量提升(Hoisting)
2019/03/12 Javascript
解决layui的form里的元素进行动态生成,验证失效的问题
2019/09/14 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
微信公众号开发之微信支付代码记录的实现
2019/10/16 Javascript
vue组件传值的实现方式小结【三种方式】
2020/02/05 Javascript
只有 20 行的 JavaScript 模板引擎实例详解
2020/05/11 Javascript
[45:14]Optic vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
python del()函数用法
2013/03/24 Python
python中的闭包用法实例详解
2015/05/05 Python
简单了解Python中的几种函数
2017/11/03 Python
pip install urllib2不能安装的解决方法
2018/06/12 Python
python中多层嵌套列表的拆分方法
2018/07/02 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
2018/08/07 Python
Python实现代码统计工具
2019/09/19 Python
python将四元数变换为旋转矩阵的实例
2019/12/04 Python
python实现超级玛丽游戏
2020/03/18 Python
python实现在线翻译
2020/06/18 Python
python为什么要安装到c盘
2020/07/20 Python
用pip给python安装matplotlib库的详细教程
2021/02/24 Python
美国亚马逊旗下时尚女装网店:SHOPBOP(支持中文)
2020/10/17 全球购物
经验交流材料格式
2014/12/30 职场文书
员工聘用合同范本
2015/09/21 职场文书
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
2021/11/11 Python