PHP utf8和json_encode重音标记问题


PHP utf8 and json_encode accent mark problems

我有一个文本来自一个充满重音标记的CSV。我检查mb_check_encoding($my_text, 'utf-8')是否为真,是的,是的。通过此文本,我生成了一个变量$json,该变量应用

json_encode($json,JSON_NUMERIC_CHECK);
var_dump($json)

给出了一个数组,其中所有奇怪的标记都正确(é,ì等),但生成的JSON文本不正确(例如:"Donn'u00e9es"而不是"Données")。

我知道json_encode只适用于utf8编码的数据,这就是为什么我之前检查过它是utf8。我还尝试添加header("Content-type: application/json; charset=UTF-8");,但没有成功。

那是什么原因呢?

JSON就是这样编码"奇怪的标记",即Unicode字符的。当您在JSON编码的字符串上使用json_decode()时,它将恢复正常。