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与数据库代码开发规范
Aug 08 PHP
PHP header()函数常用方法总结
Apr 11 PHP
ThinkPHP框架实现session跨域问题的解决方法
Jul 01 PHP
ThinkPHP表单自动验证实例
Oct 13 PHP
php基于mcrypt的加密解密实例
Oct 27 PHP
thinkphp四种url访问方式详解
Nov 28 PHP
php使用google地图应用实例
Dec 31 PHP
WordPress用户登录框密码的隐藏与部分显示技巧
Dec 31 PHP
PHP实现的字符串匹配算法示例【sunday算法】
Dec 19 PHP
PHP中__set()实例用法和基础讲解
Jul 23 PHP
Laravel 读取 config 下的数据方法
Oct 13 PHP
php文件上传原理与实现方法详解
Dec 20 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
destoon安全设置中需要设置可写权限的目录及文件
2014/06/21 PHP
PHP面试常用算法(推荐)
2016/07/22 PHP
php微信公众号开发之欢迎老朋友
2018/10/20 PHP
JavaScript入门教程 Cookies
2009/01/31 Javascript
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
火狐textarea输入法的bug的触发及解决
2013/07/24 Javascript
鼠标滑在标题上显示图片的JS代码
2013/11/19 Javascript
优化javascript的执行效率一些方法总结
2013/12/25 Javascript
JavaScript异步回调的Promise模式封装实例
2014/06/07 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
2016/05/11 Javascript
js通过keyCode值判断单击键盘上某个键,然后触发指定的事件方法
2017/02/19 Javascript
JavaScript中双符号的运算详解
2017/03/12 Javascript
Vue项目webpack打包部署到服务器的实例详解
2017/07/17 Javascript
微信小程序中的店铺评分组件及vue中用svg实现的评分显示组件
2018/11/16 Javascript
微信小程序仿知乎实现评论留言功能
2018/11/28 Javascript
详解JavaScript中new操作符的解析和实现
2020/09/04 Javascript
[02:41]2015国际邀请赛中国区预选赛观战指南
2015/05/20 DOTA
[00:34]TI7不朽珍藏III——地穴编织者不朽展示
2017/07/15 DOTA
Django框架中数据的连锁查询和限制返回数据的方法
2015/07/17 Python
从局部变量和全局变量开始全面解析Python中变量的作用域
2016/06/16 Python
Python django使用多进程连接mysql错误的解决方法
2018/10/08 Python
django 2.2和mysql使用的常见问题
2019/07/18 Python
pytorch中tensor.expand()和tensor.expand_as()函数详解
2019/12/27 Python
django在保存图像的同时压缩图像示例代码详解
2020/02/11 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
python脚本第一行如何写
2020/08/30 Python
python代数式括号有效性检验示例代码
2020/10/04 Python
运动会开幕式邀请函
2014/01/22 职场文书
客服部班长工作责任制
2014/02/25 职场文书
人民调解员培训方案
2014/06/05 职场文书
中专生自荐信
2014/06/25 职场文书
信贷客户经理岗位职责
2015/04/09 职场文书
责任书范本大全
2015/05/11 职场文书
迎客户欢迎词三篇
2019/09/27 职场文书
html5移动端禁止长按图片保存的实现
2021/04/20 HTML / CSS
PostgreSQL常用字符串分割函数整理汇总
2022/07/07 PostgreSQL