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实现将GB编码转换为UTF8
Nov 25 PHP
珊瑚虫IP库浅析
Feb 15 PHP
PHP PDO函数库详解
Apr 27 PHP
PHP闭包实例解析
Sep 08 PHP
图文介绍PHP添加Redis模块及连接
Jul 28 PHP
yii2中的rules 自定义验证规则详解
Apr 19 PHP
php数组冒泡排序算法实例
May 06 PHP
PHP编程计算日期间隔天数的方法
Apr 26 PHP
php-beanstalkd消息队列类实例分享
Jul 19 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
Aug 04 PHP
php中html_entity_decode实现HTML实体转义
Jun 13 PHP
laravel 解决groupBy时出现的错误 isn't in Group By问题
Oct 17 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开发不能违背的安全规则 过滤用户输入
2011/05/01 PHP
php中通过Ajax如何实现异步文件上传的代码实例
2011/05/07 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
2014/04/10 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
php运行报错Call to undefined function curl_init()的最新解决方法
2016/11/20 PHP
PHP实现微信红包金额拆分试玩的算法示例
2018/04/07 PHP
Laravel5.7 Eloquent ORM快速入门详解
2019/04/12 PHP
javascript oop开发滑动(slide)菜单控件
2010/08/25 Javascript
js实例属性和原型属性示例详解
2014/11/23 Javascript
jQuery中remove()方法用法实例
2014/12/25 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
2020/11/18 Javascript
JavaScript中两个字符串的匹配
2016/06/08 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
2017/03/07 Javascript
laydate如何根据开始时间或者结束时间限制范围
2018/11/15 Javascript
微信小程序 swiper 组件遇到的问题及解决方法
2019/05/26 Javascript
Python编程实现生成特定范围内不重复多个随机数的2种方法
2017/04/14 Python
python实现超市商品销售管理系统
2019/10/25 Python
使用Pandas将inf, nan转化成特定的值
2019/12/19 Python
Python3自动生成MySQL数据字典的markdown文本的实现
2020/05/07 Python
Python操作Excel的学习笔记
2021/02/18 Python
css3实现3D文本悬停改变效果的示例代码
2019/01/16 HTML / CSS
html5使用canvas画三角形
2014/12/15 HTML / CSS
Gap工厂店:Gap Factory
2017/11/02 全球购物
哄娃神器4moms商店:美国婴童用品品牌
2019/03/07 全球购物
.TTL是什么?有什么用处,通常那些工具会用到它?(ping? traceroute? ifconfig? netstat?)
2016/05/09 面试题
MIS软件工程师的面试题
2016/04/22 面试题
服装公司总经理岗位职责
2013/11/30 职场文书
网上开店必备创业计划书
2014/01/26 职场文书
《祁黄羊》教学反思
2014/04/22 职场文书
乡镇食品安全责任书
2014/07/28 职场文书
2014年幼儿园国庆主题活动方案
2014/09/16 职场文书
2014年健康教育工作总结
2014/11/20 职场文书
出国留学英文自荐信
2015/03/25 职场文书
CSS实现多个元素在盒子内两端对齐效果
2021/03/30 HTML / CSS
CSS3实现的水平标题菜单
2021/04/14 HTML / CSS
《模拟人生4》推出新补丁 “婚礼奇缘”DLC终于得到修复
2022/04/03 其他游戏