1

这是php代码:

$str='{"key":"'.chr(1).'"}';
$json=json_decode($str);

json_decode 返回空值。那么我应该如何处理 $str 以便解码。(PS $str 这里只是一个例子,它可能包括 chr(2)、chr(10) 等等)。

4

2 回答 2

3

只有 U+0020-U+0021、U+0023-U+005B、U+005D-U+10FFFF 范围内的字符可能在字符串中未转义。任何其他字符都必须使用 Unicode 转义序列进行转义。在你的情况下使用\u0001

于 2012-11-27T06:21:42.550 回答
1

正如 Gumbo 指出的那样,您没有生成有效的 JSON。如果你必须这样做(不确定为什么,你的例子是基本的无操作),那么使用json_encode()

$str = '{"key":'.json_encode(chr(1).chr(2)).'}';
$json = json_decode($str);

这将创建有效的 JSON:

{"key":"\u0001\u0002"}

并将正确解码。

于 2012-11-27T06:36:22.030 回答