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 相关文章推荐
phpMyAdmin 安装配置方法和问题解决
Jun 08 PHP
php定时计划任务的实现方法详解
Jun 06 PHP
PHP取二进制文件头快速判断文件类型的实现代码
Aug 05 PHP
叫你如何修改Nginx与PHP的文件上传大小限制
Sep 10 PHP
浅析THINKPHP的addAll支持的最大数据量
Feb 03 PHP
PHP框架性能测试报告
May 08 PHP
php+Memcached实现简单留言板功能示例
Feb 15 PHP
ThinkPHP 在阿里云上的nginx.config配置实例详解
Oct 11 PHP
PHP学习记录之数组函数
Jun 01 PHP
laravel 执行迁移回滚示例
Oct 23 PHP
PHP正则之正向预查与反向预查讲解与实例
Apr 06 PHP
再谈Yii Framework框架中的事件event原理与应用
Apr 07 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获取QQ头像并显示的方法
2014/12/23 PHP
学习php设计模式 php实现备忘录模式(Memento)
2015/12/09 PHP
JS实现淘宝幻灯片效果的实现方法
2013/03/22 Javascript
js实现编辑div节点名称的方法
2014/12/17 Javascript
php常见的页面跳转方法汇总
2015/04/15 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
JavaScript优化专题之Loading and Execution加载和运行
2016/01/20 Javascript
Angularjs整合微信UI(weui)
2016/03/15 Javascript
全面总结Javascript对数组对象的各种操作
2017/01/22 Javascript
jQuery EasyUI Panel面板组件使用详解
2017/02/28 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
解决layer 动态加载select 失效的问题
2019/09/18 Javascript
React 条件渲染最佳实践小结(7种)
2020/09/27 Javascript
[01:03:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第一场 1月29日
2021/03/11 DOTA
python获取url的返回信息方法
2018/12/17 Python
python调用staf自动化框架的方法
2018/12/26 Python
提升Python程序性能的7个习惯
2019/04/14 Python
Django admin禁用编辑链接和添加删除操作详解
2019/11/15 Python
tensorflow 限制显存大小的实现
2020/02/03 Python
python3.6.8 + pycharm + PyQt5 环境搭建的图文教程
2020/06/11 Python
如何在python中处理配置文件代码实例
2020/09/27 Python
Camper鞋西班牙官方网上商店:西班牙马略卡岛的鞋类品牌
2019/03/14 全球购物
公务员培训自我鉴定
2013/09/19 职场文书
网络专业学生个人的自我评价
2013/12/16 职场文书
单位提档介绍信
2014/01/17 职场文书
《狼和小羊》教学反思
2014/04/20 职场文书
市场营销专业自荐书
2014/06/10 职场文书
产品委托授权书范本
2014/09/16 职场文书
2014年监理工作总结范文
2014/11/17 职场文书
风之谷观后感
2015/06/11 职场文书
暗恋桃花源观后感
2015/06/12 职场文书
安全教育主题班会教案
2015/08/12 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
入团申请书格式
2019/06/20 职场文书
浅谈由position属性引申的css进阶讨论
2021/05/25 HTML / CSS
Python初识逻辑与if语句及用法大全
2021/08/07 Python