登录注册

18250178511

解决 json 乱码问题(转)

作者:admin      时间:2016-01-04 09:09:09

  1. <?php  
  2. class Json{  
  3.     private static $os =null;  
  4.     public static function getOs(){  
  5.         if(null===self::$os){  
  6.             self::$os = substr(PHP_OS,0,3);  
  7.         }  
  8.         return self::$os;  
  9.     }  
  10.     public static function encode($str){  
  11.         $code = json_encode($str);  
  12.         if('WIN'==self::getOs()){  
  13.             $s_format = 'UCS-2';  
  14.         } else {  
  15.             $s_format = 'UCS-2BE';  
  16.         }  
  17.         return preg_replace("#///u([0-9a-f]+)#ie", "iconv('{$s_format}', 'UTF-8', pack('H4', '//1'))", $code);  
  18.     }  
  19.     public static function decode($str){  
  20.         return json_decode($str);  
  21.     }  
  22. }  
  23. ?>  

用上面的代码可以解决在存储JSON生成的字串为乱码的问题

 

友情提示:参数为UTF-8编码过的字串或在用UTF-8保存的程序中直接引用上面的两个静态方法

 

附:php pack()函数说明

 

pack

压缩资料到位字符串之中。

语法: string pack(string format, mixed [args]...);

返回值: 字符串(二进制)

函数种类: 资料处理

发表评论

评论列表