很明显你截的图是是JSON数据,如果是数组应二维数组的括号应该是[]而不是{}。
所以转换应该使用json_decode。比如对象名为$list,则:$list = json_decode($list, true);
出现中文Unicode的问题是,存储数据转成json时第二个参数使用错误,包含中文而不转义的需要使用JSON_UNESCAPED_UNICODE;这样存到数据库才是中文。如:$list = json_encode($list, JSON_UNESCAPED_UNICODE);
function unicode2utf8($str){
if(!$str) return $str;
$decode = json_decode($str);
if($decode) return $decode;
$str = '["' $str '"]';
$decode = json_decode($str);
if(count($decode) == 1){
return $decode[0];
}
return $str;
}
这是unicode编码,使用这个函数可以很好的将unicode编码转为utf-8编码。详细的原理可以参考这篇博文《php将unicode编码转为utf-8方法》:>
直接给你提供PHP代码
// 以下方法可以将Unicode编码的中文转换成utf8编码的中文,且对原来就是utf8编码的中文没影响:
public static function decodeUnicode($str){
return preg_replace_callback('/\\\\u([0-9a-f]{4})/i', create_function('$matches', 'return iconv("UCS-2BE","UTF-8",pack("H", $matches[1]));'), $str);
}
mb_convert_encoding
(PHP 4 >= 406, PHP 5, PHP 7)
mb_convert_encoding — 转换字符的编码
说明
string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding = mb_internal_encoding() ] )
将 string 类型 str 的字符编码从可选的 from_encoding 转换到 to_encoding。
$txt = mb_convert_encoding( $txt , 'UTF-8' , 'UCS-2');以上就是关于PHP如何把数组里的中文Unicode转换成Utf-8编码全部的内容,包括:PHP如何把数组里的中文Unicode转换成Utf-8编码、php中如何转换变量的编码、「PHP」怎样将Unicode编码转换为正嗦等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)