我真的很擅长使用JSON格式。我学到了很多东西 - 而且我仍然坚持使用UNICODE。我有一个字符串$str='Läuse';
如果我查看字符串是什么字符集,我使用echo mb_detect_encoding($str);
结果是UTF-8。现在我创建一个数组并再次检测charset是UTF-8
$json_array = [
'test' => $str
];
echo mb_detect_encoding($json_array['test']);
当我用json_encode回显数组时,它来到{"test":"L\u00e4use"}
而不是{"test":"Läuse"}
在搜索和阅读了很多关于php和unicode之后,我越来越困惑。 我知道JSON_UNESCAPED_UNICODE会根据需要输出我的json_encode。
我的问题是,我做错了,我必须使用JSON_UNESCAPED_UNICODE吗?我使用错误的字符集吗?
希望你能帮我解决这个问题
答案 0 :(得分:1)
PHP只是默认输出兼容ASCII的JSON,这种JSON不太可能因编码错误而受到损害(尽管它以可读性和一些字节为代价)。
你没有做错任何事。 JSON_UNESCAPED_UNICODE
默认情况下已关闭。