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实现的随机广告显示代码
Jun 14 PHP
PHP 将图片按创建时间进行分类存储的实现代码
Jan 05 PHP
php 高性能书写
Dec 11 PHP
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
May 16 PHP
php随机抽奖实例分析
Mar 04 PHP
解析WordPress中的post_class与get_post_class函数
Jan 04 PHP
php设计模式之单例模式代码
Jun 11 PHP
php字符集转换
Jan 23 PHP
PHP 年月日的三级联动实例代码
May 24 PHP
php 中的closure用法详解
Jun 12 PHP
PHP7 windows支持
Mar 09 PHP
Laravel中Kafka的使用详解
Mar 24 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
解析posix与perl标准的正则表达式区别
2013/06/17 PHP
调试PHP程序的多种方法介绍
2014/11/06 PHP
php+Mysqli利用事务处理转账问题实例
2015/02/11 PHP
php微信公众平台配置接口开发程序
2016/09/22 PHP
js 利用image对象实现图片的预加载提高访问速度
2013/03/29 Javascript
js分页工具实例
2015/01/28 Javascript
jquery 中ajax执行的优先级
2015/06/22 Javascript
AngularJS实现全选反选功能
2015/12/08 Javascript
分享javascript、jquery实用代码段
2016/10/20 Javascript
jQuery实现删除li节点的方法
2016/12/06 Javascript
微信小程序 Tab页切换更新数据
2017/01/05 Javascript
vue实现简单表格组件实例详解
2017/04/16 Javascript
基于vue组件实现猜数字游戏
2020/05/28 Javascript
VueJs 将接口用webpack代理到本地的方法
2017/11/27 Javascript
使用npm安装最新版本nodejs
2018/01/18 NodeJs
解决微信小程序调用moveToLocation失效问题【超简单】
2019/04/12 Javascript
Javascript数组方法reduce的妙用之处分享
2019/06/10 Javascript
layui form.render('select', 'test2') 更新渲染的方法
2019/09/27 Javascript
python构建自定义回调函数详解
2017/06/20 Python
Python使用matplotlib实现绘制自定义图形功能示例
2018/01/18 Python
python数据封装json格式数据
2018/03/04 Python
python实现windows下文件备份脚本
2018/05/27 Python
Python3.6日志Logging模块简单用法示例
2018/06/14 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
2018/06/19 Python
用Python逐行分析文件方法
2019/01/28 Python
python3 实现的对象与json相互转换操作示例
2019/08/17 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
Python:合并两个numpy矩阵的实现
2019/12/02 Python
Python-jenkins模块获取jobs的执行状态操作
2020/05/12 Python
LACOSTE波兰官网:Polo衫、服装和鞋类
2020/09/29 全球购物
初一生物教学反思
2014/01/18 职场文书
水利学院求职自荐书
2014/02/01 职场文书
职务说明书范文
2014/05/07 职场文书
2014银行领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
教师节老师寄语
2015/05/28 职场文书
【海涛教你打DOTA】剑圣第一人称视角解说
2022/04/01 DOTA