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调用Oracle存储过程
Oct 09 PHP
MVC模式的PHP实现
Oct 09 PHP
使用PHP 5.0创建图形的巧妙方法
Oct 12 PHP
PHP setcookie设置Cookie用法(及设置无效的问题)
Jul 13 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
Oct 27 PHP
php生成短域名函数
Mar 23 PHP
yii2.0使用Plupload实现带缩放功能的多图上传
Dec 22 PHP
使用symfony命令创建项目的方法
Mar 17 PHP
PHP简单实现冒泡排序的方法
Dec 26 PHP
php常用正则函数实例小结
Dec 29 PHP
php+redis实现多台服务器内网存储session并读取示例
Jan 12 PHP
php连接MSsql server的五种方法总结
Mar 04 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操作sqlserver关于时间日期读取的小小见解
2009/11/29 PHP
php file_exists 检查文件或目录是否存在的函数
2010/05/10 PHP
php过滤html标记属性类用法实例
2014/09/23 PHP
php更新mysql后获取改变行数的方法
2014/12/25 PHP
PHP遍历数组的方法汇总
2015/04/30 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
Yii2结合Workerman的websocket示例详解
2018/09/10 PHP
js GridView 实现自动计算操作代码
2009/03/25 Javascript
学习ExtJS 访问容器对象
2009/10/07 Javascript
基于jquery的一个图片hover的插件
2010/04/24 Javascript
五段实用的js高级技巧
2011/12/20 Javascript
Javascript 赋值机制详解
2014/11/23 Javascript
使用jQuery仿苹果官网焦点图特效
2014/12/23 Javascript
浅谈JSON.parse()和JSON.stringify()
2015/07/14 Javascript
自定义vue全局组件use使用、vuex的使用详解
2017/06/14 Javascript
vue 关闭浏览器窗口的时候,清空localStorage的数据示例
2019/11/06 Javascript
Django中实现一个高性能计数器(Counter)实例
2014/07/09 Python
对python3 Serial 串口助手的接收读取数据方法详解
2019/06/12 Python
flask框架路由常用定义方式总结
2019/07/23 Python
python yield关键词案例测试
2019/10/15 Python
python+Django+pycharm+mysql 搭建首个web项目详解
2019/11/29 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
2020/06/24 Python
Pytorch生成随机数Tensor的方法汇总
2020/09/09 Python
python 进制转换 int、bin、oct、hex的原理
2021/01/13 Python
使用css3制作登录表单的步骤
2014/04/07 HTML / CSS
详解CSS3+JS完美实现放大镜模式
2020/12/03 HTML / CSS
本科生个人求职自荐信
2013/09/26 职场文书
班组长的岗位职责
2013/12/09 职场文书
幼教求职信
2014/03/12 职场文书
司法建议书范文
2014/05/13 职场文书
计划生育个人总结
2015/03/02 职场文书
微信搭讪开场白
2015/05/28 职场文书
PyQt5 QThread倒计时功能的实现代码
2021/04/02 Python
Python爬虫之爬取哔哩哔哩热门视频排行榜
2021/04/28 Python
MySQL RC事务隔离的实现
2022/03/31 MySQL
Java实现注册登录跳转
2022/06/16 Java/Android