php中json_encode中文编码问题分析

2015-01-24信息快讯网

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

例如:'胥'经过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中get_headers函数的作用及用法的详细介绍
使用php get_headers 判断URL是否有效的解决办法
php中serialize序列化与json性能测试的示例分析
php 模拟get_headers函数的代码示例
Eclipse中php插件安装及Xdebug配置的使用详解
基于python发送邮件的乱码问题的解决办法
PHP header()函数使用详细(301、404等错误设置)
关于Iframe如何跨域访问Cookie和Session的解决方法
php简单开启gzip压缩方法(zlib.output_compression)
file_get_contents获取不到网页内容的解决方法
利用PHP扩展vld查看PHP opcode操作步骤
php和js如何通过json互相传递数据相关问题探讨
PHP应用JSON技巧讲解
PHP5.4中json_encode中文转码的变化小结
PHP基础教程(php入门基础教程)一些code代码
PHP gbk环境下json_dencode传送来的汉字
apache+codeigniter 通过.htcaccess做动态二级域名解析
PHP 图片上传代码
PHP pathinfo()获得文件的路径、名称等信息说明
php正则表达式(regar expression)
PHP session会话的安全性分析
php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
php的urlencode()URL编码函数浅析
PHP header函数分析详解
PHP源码之explode使用说明
在WAMP环境下搭建ZendDebugger php调试工具的方法
PHP的explode和implode的使用说明
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
php获取post中的json数据的实现方法
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE eval()'d code error
php处理json时中文问题的解决方法
PHP JSON格式数据交互实例代码详解
php array_unique之后json_encode需要注意
理解php原理的opcodes(操作码)
php 无限级数据JSON格式及JS解析
©2014-2024 dbsqp.com