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作的文本留言本的例子(六)
Oct 09 PHP
php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
Nov 14 PHP
在windows服务器开启php的gd库phpinfo中未发现
Jan 13 PHP
PHP 读取大文件的X行到Y行内容的实现代码
Jun 24 PHP
php生成随机颜色方法汇总
Dec 03 PHP
php提高网站效率的技巧
Sep 29 PHP
一个完整的php文件上传类实例讲解
Oct 27 PHP
php命令行(cli)模式下报require 加载路径错误的解决方法
Nov 23 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
Feb 24 PHP
PHP笛卡尔积实现算法示例
Jul 30 PHP
PHP实现微信提现(企业付款到零钱)
Aug 01 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 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
php实现兼容2038年后Unix时间戳转换函数
2015/03/18 PHP
YII Framework框架教程之国际化实现方法
2016/03/14 PHP
利用php的ob缓存机制实现页面静态化方法
2017/07/09 PHP
php使用curl获取header检测开启GZip压缩的方法
2018/08/15 PHP
jQuery UI AutoComplete 自动完成使用小记
2010/08/21 Javascript
input链接页面、打开新网页等等的具体实现
2013/12/30 Javascript
总结JavaScript中布尔操作符||与&amp;&amp;的使用技巧
2015/11/17 Javascript
js拖拽的原型声明和用法总结
2016/04/04 Javascript
巧用Vue.js+Vuex制作专门收藏微信公众号的app
2016/11/03 Javascript
Jquery与Bootstrap实现后台管理页面增删改查功能示例
2017/01/22 Javascript
node.js实现回调的方法示例
2017/03/01 Javascript
jQuery ajax实现省市县三级联动
2021/03/07 Javascript
Javascript中的async awai的用法
2017/05/17 Javascript
js表单序列化判断空值的实例
2017/09/22 Javascript
详解使用Typescript开发node.js项目(简单的环境配置)
2017/10/09 Javascript
JS实现元素上下左右移动效果
2017/10/18 Javascript
探秘vue-rx 2.0(推荐)
2018/09/21 Javascript
js实现类似iphone的网页滑屏解锁功能示例【附源码下载】
2019/06/10 Javascript
JS轮播图的实现方法2
2020/08/25 Javascript
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
2019/06/21 Python
python解析xml文件方式(解析、更新、写入)
2020/03/05 Python
美国著名珠宝品牌之一:Jared The Galleria Of Jewelry
2016/10/01 全球购物
Bugatchi官方网站:男士服装在线
2019/04/10 全球购物
儿科护理实习自我鉴定
2013/09/19 职场文书
工程安全员岗位职责
2014/03/09 职场文书
羽毛球比赛策划方案
2014/06/13 职场文书
优秀应届毕业生自荐书
2014/06/29 职场文书
药品营销专业毕业生自荐信
2014/07/02 职场文书
公诉意见书范文
2015/06/05 职场文书
学校运动会加油词
2015/07/18 职场文书
幼儿园毕业典礼家长致辞
2015/07/29 职场文书
2016高中社会实践心得体会范文
2016/01/14 职场文书
2016机关干部作风建设心得体会
2016/01/21 职场文书
2016年小学推普宣传周活动总结
2016/04/06 职场文书
解决python绘图使用subplots出现标题重叠的问题
2021/04/30 Python
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python