使用json_encode / json_decode对utf8字符串进行解码/编码时,我没有收到原始编码中的字符串...
$test = '{"c":"limón"}';
echo $test; //=> {"c":"limón"}
echo json_decode($test)->{"c"}; //=> limón
echo json_encode(json_decode($test)); //=> {"c":"lim\u00f3n"}
如何将字符串编码回原始编码(utf8)?
答案 0 :(得分:4)
json_encode
的默认行为是转义所有Unicode字符。如果您的PHP版本为5.4.0或更高版本,则可以将JSON_UNESCAPED_UNICODE
作为json_encode
的第二个参数传递,以获得您期望的行为。在早期版本中有许多hacks可以获得此行为,包括preprocessing your object to encode Unicode characters as HTML entities,然后在之后反转转换。