GBK页面输出JSON的php代码

发布时间:2020-09-21编辑:脚本学堂
GBK的页面输出JSON的代码:encode之前转换为utf-8,decode之后转回gbk。

GBK的页面输出JSON的代码:encode之前转换为utf-8,decode之后转回gbk。
 

复制代码 代码如下:

<?php
function tb_json_encode($value, $options = 0)
{
  return json_encode(tb_json_convert_encoding($value, “GBK”, “UTF-8″));
}

function tb_json_decode($str, $assoc = false, $depth = 512)
{
  return tb_json_convert_encoding(json_decode($str, $assoc), “UTF-8″, “GBK”);
}

function tb_json_convert_encoding($m, $from, $to)
{
  switch(gettype($m)) {
    case ‘integer’:
    case ‘boolean’:
    case ‘float’:
    case ‘double’:
    case ‘NULL’:
      return $m;

    case ’string’:
      return mb_convert_encoding($m, $to, $from);
    case ‘object’:
      $vars = array_keys(get_object_vars($m));
      foreach($vars as $key) {
        $m->$key = tb_json_convert_encoding($m->$key, $from ,$to);
      }
      return $m;
    case ‘array’:
      foreach($m as $k => $v) {
        $m[tb_json_convert_encoding($k, $from, $to)] = tb_json_convert_encoding($v, $from, $to);
      }
      return $m;
    default:
  }
  return $m;
}
?>