php5.2 Json不能正确处理中文、GB编码的解决方法

 更新时间:2014年03月28日 17:49:27   作者:  
json_encode对中文的处理是有问题,不能处理GB编码,所有的GB编码都会替换成空字符,下面有个不错的解决方法,大家可以参考下
php5.2新增的json功能是非常受欢迎的,但是经过测试发现,
json_encode对中文的处理是有问题的,
1.不能处理GB编码,所有的GB编码都会替换成空字符.
2.utf8编码的中文被编码成unicode编码,相当于javascript的escape函数处理的结果.
复制代码 代码如下:

/*

为了能正确使用json,首先我们就应该在编码上采用utf8编码,然后再对json_encode的返回结果稍加处理就可以得到正确的结果了。
我写了一个简单的类,将这两个函数包装了一下,
**/
class Json{
public static function encode($str){
$code = json_encode($str);
return preg_replace("#\\\u([0-9a-f]+)#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '\\1'))", $code);
}

public static function decode($str){
return json_decode($str);
}
}
//使用的时候

Json::encode($code);
Json::decode($code);
/**这样可以正确处理utf8编码的中文了。

PS:对于GB编码的中文,我们可以在编码时先转成UTF8编码,再进行编码,解码的时候再进行一个utf8 -> gb的转换就可以了。
另外一般json_encode的结果我们是返回到客户端来使用,我们其实还可以用javascript的unescape函数来对unicode编码的中文进行解码,从而还原成正确的中文。

或者用:$title = mb_convert_encoding($title, 'HTML-ENTITIES', $this->_outCharset);//任意编码下都正常显示
********/

相关文章

  • PHP缓存技术的使用说明

    PHP缓存技术的使用说明

    PHP缓存技术的应用时相当普遍的,也许有些人还对这项技术不太了解,我们现在就为大家详细的介绍一下PHP缓存技术的相关应用技巧。
    2011-08-08
  • PHP读MYSQL中文乱码的解决方法

    PHP读MYSQL中文乱码的解决方法

    PHP读MYSQL中文乱码的解决方法...
    2006-12-12
  • php-fpm中max_children的配置

    php-fpm中max_children的配置

    今天小编就为大家分享一篇关于php-fpm中max_children的配置,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • PHP使用SOAP调用API操作示例

    PHP使用SOAP调用API操作示例

    这篇文章主要介绍了PHP使用SOAP调用API操作,结合实例形式分析了php基于SOAP调用API的常见操作技巧及相关问题解决方法,需要的朋友可以参考下
    2018-12-12
  • PHP高级编程实例:编写守护进程

    PHP高级编程实例:编写守护进程

    这篇文章主要介绍了PHP高级编程实例:编写守护进程,守护进程是脱离于终端并且在后台运行的进程,本文讲解使用PHP编写守护进程,并给出了代码实例,需要的朋友可以参考下
    2014-09-09
  • 谈谈PHP的输入输出流

    谈谈PHP的输入输出流

    谈谈PHP的输入输出流...
    2007-02-02
  • 解析PHP 5.5 新特性

    解析PHP 5.5 新特性

    本篇文章是对PHP 5.5 的新特性进行了详细的分析介绍,需要的朋友参考下
    2013-07-07
  • PHP实现抓取迅雷VIP账号的方法

    PHP实现抓取迅雷VIP账号的方法

    这篇文章主要介绍了PHP实现抓取迅雷VIP账号的方法,实例分析了php基于采集类Snoopy实现页面抓取及正则匹配的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • PHP中提问频率最高的11个面试题和答案

    PHP中提问频率最高的11个面试题和答案

    这篇文章主要介绍了PHP中提问频率最高的11个面试题和答案,每个公司都有自己的面试标准,面试和问题是完全取决于你在工作中所扮演的角色,当然也和你的编程技能息息相关,需要的朋友可以参考下
    2014-09-09
  • PHP 数据库 常见问题小结

    PHP 数据库 常见问题小结

    揭露 PHP 应用程序中出现的五个常见数据库问题 —— 包括数据库模式设计、数据库访问和使用数据库的业务逻辑代码 —— 以及它们的解决方案。
    2009-06-06

最新评论