前天在做一个功能,往数据表插入一个json数据,发现数据竟然是这样
{"transport":"u5965u8fea","reason":"u6e9cu5b8c"}
中文自动被转码了,于是百度了下,找到了几种解决办法
1.要求php5.4版本以上
<?php
echo json_encode("中文", JSON_UNESCAPED_UNICODE);
2.
function decodeUnicode($str){
return preg_replace_callback('/\\u([0-9a-f]{4})/i',
create_function(
'$matches',
'return mb_convert_encoding(pack("H*", $matches[1]), "UTF-8", "UCS-2BE");'
),
$str);
}
$array = array("transport"=>"英菲尼迪","reason"=>"出差");
$json = decodeUnicode(json_encode($array));
然后插入数据表,读取的时候
$array_new = (array)json_decode($json);
print_r($array_new);
已有 0 条评论