首页 php教程 php手册 php中json_encode中文编码问题分析

php中json_encode中文编码问题分析

Jun 06, 2016 pm 08:38 PM
json_encode 中文编码

众所周知使用json_encode可以方便快捷地将对象进行json编码,但是如果对象的属性中存在着中文,问题也就随之而来了。json_encode会将中文转换为unicode编码

例如:'胥'经过json_encode处理后变为'\u80e5',最终的json中中文部分被替换为unicode编码。我们要解决的就是将对象转换为json并保证对象内部的中文在json中仍然是以正常的中文出现,现在看来只使用json_encode是不能达到目的的。
  我的解决方法:先将类中的中文字段进行url编码(urlencode),然后再对对象进行json编码(jsonencode),最后url解码(urldecode)json,即最终的json,里面的中文依旧是那个中文!
测试代码如下:
代码如下:
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 '
';
echo $c->to_json();
echo '
';
echo json_encode($c);
echo '
';
echo json_encode('胥');
?>

程序输出结果:
代码如下:
{"item1":1,"item2":"\u4e2d\u6587"}
{"item1":1,"item2":"中文"}
{"item1":1,"item2":"\u4e2d\u6587"}
"\u80e5"

希望本文起到抛砖引玉的作用,收集大家更好的解决方法……!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
两个点博物馆:所有展览以及在哪里可以找到它们
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
两个点博物馆:所有展览以及在哪里可以找到它们
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Java开发中如何处理文件路径中文编码问题 Java开发中如何处理文件路径中文编码问题 Jun 29, 2023 pm 05:11 PM

Java开发中如何处理文件路径中文编码问题

如何在C语言编程中实现中文字符的编码和解码? 如何在C语言编程中实现中文字符的编码和解码? Feb 19, 2024 pm 02:15 PM

如何在C语言编程中实现中文字符的编码和解码?

PHP中文乱码的常见原因及解决方案 PHP中文乱码的常见原因及解决方案 Mar 16, 2024 am 11:51 AM

PHP中文乱码的常见原因及解决方案

Tomcat中如何正确处理中文字符编码 Tomcat中如何正确处理中文字符编码 Dec 28, 2023 pm 01:20 PM

Tomcat中如何正确处理中文字符编码

Java开发中URL中文编码问题解决控制在30字以内 Java开发中URL中文编码问题解决控制在30字以内 Jun 30, 2023 pm 01:25 PM

Java开发中URL中文编码问题解决控制在30字以内

分享如何处理matplotlib中文字符乱码的技巧和经验 分享如何处理matplotlib中文字符乱码的技巧和经验 Jan 13, 2024 pm 02:14 PM

分享如何处理matplotlib中文字符乱码的技巧和经验

如何使用PHP中的json_encode函数将数组转换为JSON格式 如何使用PHP中的json_encode函数将数组转换为JSON格式 Jun 26, 2023 pm 12:46 PM

如何使用PHP中的json_encode函数将数组转换为JSON格式

使用PHP函数 'json_encode' 将变量转换为JSON格式字符串 使用PHP函数 'json_encode' 将变量转换为JSON格式字符串 Jul 24, 2023 am 10:42 AM

使用PHP函数 'json_encode' 将变量转换为JSON格式字符串

See all articles