php使用json_encode中文会被编码,开发人员真的恼怒了,如果你用php 5.4版本可以避免这个问题:
//这样的不好之处是添加了传输数据的数量
echo json_encode('PHP点点通'); //"PHPu70b9u70b9u901a"
//如果你用PHP 5.4,那么恭喜你,json可以便面unicode编码
echo json_encode('PHP点点通', JSON_UNESCAPED_UNICODE);
更高级点的例子
if (version_compare(PHP_VERSION, '5.4.0', '<')) {
$json = json_encode($data);
$json = preg_replace_callback("#\u([0-9a-f]{4})#i", function ($matches) {
return iconv('UCS-2BE', 'UTF-8', pack('H4', $matches[1]));
}, $json);
if ('' != $callback) {
echo $callback . '(' . $json . ");n";
} else {
echo $json . "n";
}
} else {
$json = json_encode($data, JSON_UNESCAPED_UNICODE);
}
总得来讲例子一与例子二我们如果不确定自己的php版本可以使用例子二来进行判断php版本,根据不同版本给出不同的解决程序。