Php json_使用选项json_UNESCAPED_UNICODE编码
使用echo json_encode($array,json_UNESCAPED_UNICODE)时 我得到了这个错误的答案 警告:json_encode()只需要1个参数,给定2个Php json_使用选项json_UNESCAPED_UNICODE编码,php,json,Php,Json,使用echo json_encode($array,json_UNESCAPED_UNICODE)时 我得到了这个错误的答案 警告:json_encode()只需要1个参数,给定2个 您的php版本可能太低: 请参阅允许在PHP5.2上使用相同功能的补丁 基本上是这样运行的: foreach ($array as &$val) { $val = preg_replace_callback('/\\\\u([0-9a-f]{4})/i', function($ma
您的php版本可能太低: 请参阅允许在PHP5.2上使用相同功能的补丁 基本上是这样运行的:
foreach ($array as &$val) {
$val = preg_replace_callback('/\\\\u([0-9a-f]{4})/i',
function($matches) {
return mb_convert_encoding(pack('H*', $matches[1]), 'UTF-8', 'UTF-16');
}, $val);
}
options
参数是在PHP5.3.0中添加的,而JSON_UNESCAPED_UNICODE是在PHP5.4.0中添加的。这可能会有帮助:嗯,好吧,如果是这样的话,我可以做同样的事情,但使用不同的脚本,这里有一条注释,上面写着“JSON_UNESCAPED_UNICODE的简单替换(例如PHP<5.4)”@EvenJohnsonJSON\u UNESCAPED\u UNICODE
实际上可能没有必要。如果你的PHP版本太低,就不用它了。嗯,5票以上,“这个问题不太可能帮助任何未来的访问者”:)即使这很接近,这在技术上也是错误的。PHP5.4也有一个bug,请参见
foreach ($array as &$val) {
$val = preg_replace_callback('/\\\\u([0-9a-f]{4})/i',
function($matches) {
return mb_convert_encoding(pack('H*', $matches[1]), 'UTF-8', 'UTF-16');
}, $val);
}