编码转换

json_encode
在php5.2中做json_encode的时候,中文会被unicode编码;php5.3加入了options参数;php5.4以后加入JSON_UN
ESCAPED_UNICODE,这个参数不需要做escape和unicode处理。所以
php5.4及以上中可以直接 json_encode($str,JSON_UNESCAPED_UNICODE);
php5.4以下
(1)、function encode_json($str)
  {
    $code = json_encode($str);  
       return preg_replace("#\u([0-9a-f]+)#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '\1'))", $code); 

  }
  注: 据说在实际应用中有个问题,部分字符会掉,如:"日期11.2"会被变成"日期.2"
(2)、先对需要处理的做urlencode处理,然后json_encode,最后urldecode处理
  function encode_json($str)
  {
    if(is_array($str))
    {
      foreach($str as $key=>$value)
      {
        $str[urlencode($key)]=urlencode($value);
      }
    }
    else
    {
      $str=urlencode($str);
    }
    return $str;
  }
------------------------------------------------------------------------------------------------------

原文地址:https://www.cnblogs.com/bwteacher/p/5766177.html