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"

标签: none

添加新评论