PHP json_decode函数只是工作UTF-8编码的字符串?

时间:2013-12-17 17:47:07

标签: php unicode utf-8 json

Here您可以阅读json_decode函数

  

仅适用于UTF-8编码的字符串。

那么为什么以下行导致不同的输出?

echo utf8_decode('1ñ2'), "\n";
echo json_decode('"' . '1ñ2' . '"'), "\n";

'ñ'字符不是有效的UTF-8字符,即使json_decode在将该字符传递到必须解码的字符串时也不会抱怨。

1 个答案:

答案 0 :(得分:2)

那是因为这两个功能都在做完全不同的事情。虽然json_decode()保持字符编码不变(utf-8)并且只是将json数据解析为PHP结构,但utf8_decode()将字符编码转换为ISO-8859-1。但是ISO-8859-1并不知道那个特殊的多字节字符。