Here您可以阅读json_decode
函数
仅适用于UTF-8编码的字符串。
那么为什么以下行导致不同的输出?
echo utf8_decode('1ñ2'), "\n";
echo json_decode('"' . '1ñ2' . '"'), "\n";
'ñ'字符不是有效的UTF-8字符,即使json_decode
在将该字符传递到必须解码的字符串时也不会抱怨。
答案 0 :(得分:2)
那是因为这两个功能都在做完全不同的事情。虽然json_decode()
保持字符编码不变(utf-8)并且只是将json数据解析为PHP结构,但utf8_decode()
将字符编码转换为ISO-8859-1。但是ISO-8859-1并不知道那个特殊的多字节字符。