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 相关文章推荐
不用数据库的多用户文件自由上传投票系统(1)
Oct 09 PHP
ajax缓存问题解决途径
Dec 06 PHP
php fckeditor 调用的函数
Jun 21 PHP
火车采集器 免费版使出收费版本功能实现原理
Sep 17 PHP
php上传文件中文文件名乱码的解决方法
Nov 01 PHP
Javascript与PHP验证用户输入URL地址是否正确
Oct 09 PHP
详解WordPress中简码格式标签编写的基本方法
Dec 22 PHP
php版微信公众平台接口开发之智能回复开发教程
Sep 22 PHP
PHP实现活动人选抽奖功能
Apr 19 PHP
PHP封装的简单连接MongoDB类示例
Feb 13 PHP
Laravel框架实现的使用smtp发送邮件功能示例
Mar 12 PHP
Laravel框架实现简单的学生信息管理平台案例
May 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通用检测函数集合
2011/02/08 PHP
PHP __autoload()方法真的影响性能吗?
2012/03/30 PHP
PHP基础学习之流程控制的实现分析
2013/04/28 PHP
解析获取优酷视频真实下载地址的PHP源代码
2013/06/26 PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
2013/06/27 PHP
php文件缓存类用法实例分析
2015/04/22 PHP
php中使用websocket详解
2016/09/23 PHP
PHP中创建和编辑Excel表格的方法
2018/09/13 PHP
让whoops帮我们告别ThinkPHP6的异常页面
2020/03/02 PHP
jQuery 中使用JSON的实现代码
2011/12/01 Javascript
jQuery CSS()方法改变现有的CSS样式表
2014/09/09 Javascript
BootStrap中Datetimepicker和uploadify插件应用实例小结
2016/05/26 Javascript
详解nodejs 文本操作模块-fs模块(五)
2016/12/23 NodeJs
jQuery使用正则表达式替换dom元素标签用法示例
2017/01/16 Javascript
javascript自定义右键菜单插件
2019/12/16 Javascript
vue+springboot+element+vue-resource实现文件上传教程
2020/10/21 Javascript
[02:42]决战东方!DOTA2亚洲邀请赛重启荣耀之争
2017/03/17 DOTA
Python 获取当前所在目录的方法详解
2017/08/02 Python
python opencv之SURF算法示例
2018/02/24 Python
python操作excel文件并输出txt文件的实例
2018/07/10 Python
python 读取竖线分隔符的文本方法
2018/12/20 Python
Python3实现配置文件差异对比脚本
2019/11/18 Python
Python Websocket服务端通信的使用示例
2020/02/25 Python
解决python中0x80072ee2错误的方法
2020/07/19 Python
Matplotlib 绘制饼图解决文字重叠的方法
2020/07/24 Python
python用Tkinter做自己的中文代码编辑器
2020/09/07 Python
python3定位并识别图片验证码实现自动登录功能
2021/01/29 Python
纯css3实现照片墙效果
2014/12/26 HTML / CSS
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
数据库连接池的工作原理
2012/09/26 面试题
委托书如何写
2014/08/30 职场文书
党员个人批评与自我批评
2014/10/14 职场文书
小学优秀学生评语
2014/12/29 职场文书
教师年度考核个人总结
2015/02/12 职场文书
母亲去世追悼词
2015/06/23 职场文书
一篇文章学会Vue中间件管道
2021/06/20 Vue.js