我pako.deflate用來壓縮javascript中的數(shù)據(jù),如下所示:js file:const params = [{id: 5, name: '張三', list: [{code: '10010', type: 'media'}]},{id: 6, name: '李四', list: [{code: '20010', type: 'site'}]}]let binaryString = pako.deflate(JSON.stringify(params), { to: 'string' })http.post({data: binaryString})...在網(wǎng)絡(luò)服務(wù)器中,我需要使用 PHP 解壓縮該數(shù)據(jù)。這就是我所做的php file:$data = $params['data']; // got the right post data$res = gzinflate(base64_decode($data));echo $res; //echo false但$res回聲false我錯(cuò)過了什么?
1 回答

拉莫斯之舞
TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超10個(gè)贊
您在服務(wù)器上進(jìn)行 base64 解碼 - 在發(fā)布數(shù)據(jù)之前,您實(shí)際上是否在客戶端進(jìn)行了 base64 編碼?發(fā)布的代碼中沒有跡象表明這種情況正在發(fā)生。
我懷疑您很可能正在發(fā)送一個(gè)壓縮的 utf-8 字符串作為您的數(shù)據(jù),然后嘗試對(duì)包含更大范圍字符的字符串進(jìn)行 base64解碼。
也許看看$params['data']
包含什么字符 - 如果它們中的任何一個(gè)超出 base64 范圍(是a-z
, A-Z
, 0-9
, +
, /
, 并且可能是尾隨=
),那么我認(rèn)為這就是問題所在。
然后,您可以嘗試簡單地將行更改為:
$res = gzinflate($data);
- 1 回答
- 0 關(guān)注
- 225 瀏覽
添加回答
舉報(bào)
0/150
提交
取消