【发布时间】:2013-12-17 17:47:06
【问题描述】:
Here你可以读到json_decode函数
仅适用于 UTF-8 编码的字符串。
那么为什么以下几行会导致不同的输出?
echo utf8_decode('1ñ2'), "\n";
echo json_decode('"' . '1ñ2' . '"'), "\n";
'ñ' 字符不是有效的 UTF-8 字符,即使 json_decode 在将该字符传递到它必须解码的字符串时也不会抱怨。
【问题讨论】:
-
"ñ" 实际上是一个有效的 UTF-8 字符。我没有明白这里有什么问题,因为这些功能做不同的事情。这是每个人的预期结果。
-
"ñ" 必须表示为多字节字符,因为它设置了最高有效位,因此 UTF-8 字符是 'ñ2',这不是有效的 UTF-8。跨度>