json_encode处理二进制的问题
$a = gzcompress('test');
echo 'before json : ';
print_r($a);
echo "\n";
echo 'after json : ';
print_r(json_encode($a));
输出的结果为:
before json : x+I-.]
after json : null
json_encode后的结果为null,PHP手册上给了说明。
待编码的 value ,除了resource类型之外,可以为任何数据类型
该函数只能接受 UTF-8 编码的数据
如何解决呢?
$a = gzcompress('test');
echo 'before json : ';
print_r($a);
echo "\n";
echo 'after json : ';
print_r(json_encode(base64_encode($a)));
输出结果为:
before json : x+I-.]
after json && base64 : "eJwrSS0uAQAEXQHB"