2015-08-16 30 views
1

我压缩如下的阵列,编码压缩的数据转换成JSON字符串

<?php 
    $input = array('name'=>'PHP'); 
    $compressed = gzcompress(serialize($input)); 

    echo '<pre>'; print_r($compressed); 
?> 

而且它打印数据如下

xœK´2´ª.¶2±RÊKÌMU².¶2¶R 
ðP²®nJ» 

现在,我想$compressed转换为json字符串。由于压缩数据包含特殊字符,因此会引发错误,所以我在下面尝试JSON_UNESCAPED_UNICODE是代码片段。

<?php 
    // $compressed value getting from above script 
    echo json_encode($compressed,JSON_UNESCAPED_UNICODE); 
?> 

还是不行。任何人都可以建议如何将压缩数据编码为json字符串。

+1

你可能想看看关于这个问题的这个早期的岗位:http://stackoverflow.com/questions/1443158/ binary-data-in-json-string-something-better-base-base64 – cars10m

回答

1

尝试使用:

$data = base64_encode(gzcompress(serialize($input))); 

要恢复:

$input = unserialize(gzuncompress(base64_decode($data))); 
+1

欢迎来到SO。我也找到了解决方案。感谢您的兴趣和热情,回答老问题。 :-) – Butterfly