json_decode转码无效

由于最近从原来常用的utf-8的字符转到了gbk;所以,在用json_decode的时候遇到了返回为空;

经查找发现是json_decode和json_encode只针对utf8字符串有效;

于是用到了iconv()函数;

下面是我写的代码案例以及解释

$arr = array(
    'a'    => 'hello',
    'b'    => '你好'
);
foreach($arr as &$v){
    //iconv()函数是指: 字符串按要求的字符编码来转换;
    //string iconv ( string $in_charset , string $out_charset , string $str );
    //iconv函数是把$str从$in_charset字符输出$_out_charset字符;
    //成功返回;失败返回false;
    $v = iconv('GBK','UTF-8',$v);

}


$json = json_encode($arr); //json函数只支持utf-8的字符串
//var_dump($json);die;
$jsonArr = json_decode($json,true);
//print_r($jsonArr);
原文地址:https://www.cnblogs.com/bigwang1126/p/9586009.html