解决 json 乱码问题(转)
作者:admin
时间:2016-01-04 09:09:09
- <?php
- class Json{
- private static $os =null;
- public static function getOs(){
- if(null===self::$os){
- self::$os = substr(PHP_OS,0,3);
- }
- return self::$os;
- }
- public static function encode($str){
- $code = json_encode($str);
- if('WIN'==self::getOs()){
- $s_format = 'UCS-2';
- } else {
- $s_format = 'UCS-2BE';
- }
- return preg_replace("#///u([0-9a-f]+)#ie", "iconv('{$s_format}', 'UTF-8', pack('H4', '//1'))", $code);
- }
- public static function decode($str){
- return json_decode($str);
- }
- }
- ?>
用上面的代码可以解决在存储JSON生成的字串为乱码的问题
友情提示:参数为UTF-8编码过的字串或在用UTF-8保存的程序中直接引用上面的两个静态方法
附:php pack()函数说明
pack
压缩资料到位字符串之中。
语法: string pack(string format, mixed [args]...);
返回值: 字符串(二进制)
函数种类: 资料处理
评论列表