这是php代码:
$str='{"key":"'.chr(1).'"}';
$json=json_decode($str);
json_decode返回null。那么我应该如何处理$ str才能解码。 (P.S. $ str只是一个例子,它可能包括chr(2),chr(10)等等。)
答案 0 :(得分:3)
Only characters in the range U+0020-U+0021, U+0023-U+005B, U+005D-U+10FFFF may appear unescaped in strings.必须使用Unicode转义序列转义任何其他字符。在您的情况下,请使用\u0001
。
答案 1 :(得分:1)
正如Gumbo所指出的,你没有生成有效的JSON。如果你必须这样做(不确定为什么,你的例子是基本的无操作),那么使用json_encode()
:
$str = '{"key":'.json_encode(chr(1).chr(2)).'}';
$json = json_decode($str);
这会创建有效的JSON:
{"key":"\u0001\u0002"}
并且会正确解码。