Here您可以阅读 json_decode
函数
only works with UTF-8 encoded strings.
那么为什么以下几行会产生不同的输出?
echo utf8_decode('1ñ2'), "\n";
echo json_decode('"' . '1ñ2' . '"'), "\n";
'ñ' 字符不是有效的 UTF-8 字符,即使如此,当该字符传递到它必须解码的字符串时,json_decode
也不会提示。
最佳答案
那是因为这两个函数正在做完全不同的事情。虽然 json_decode()
保持字符编码不变 (utf-8) 并且仅将 json 数据解析为 PHP 结构,utf8_decode()
将字符编码转换为 ISO-8859-1。但 ISO-8859-1 不知道特殊的多字节字符。
关于PHP json_decode 函数只能处理 UTF-8 编码的字符串吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20641186/