我尝试在 php 中使用 lz4_compress 压缩数据,并在 golang中使用https://github.com/pierrec/lz4解压缩数据
但它失败了。
似乎 lz4_compress 输出错过了 lz4 标头,并且块数据略有不同。
请帮我解决问题。
<?php
echo base64_encode(lz4_compress("Hello World!"));
?>
输出:
DAAAAMBIZWxsbyBXb3JsZCE=
package main
import (
"bytes"
"encoding/base64"
"fmt"
"github.com/pierrec/lz4"
)
func main() {
a, _ := base64.StdEncoding.DecodeString("DAAAAMBIZWxsbyBXb3JsZCE=")
fmt.Printf("%b\n", a)
buf := new(bytes.Buffer)
w := lz4.NewWriter(buf)
b := bytes.NewReader([]byte("Hello World!"))
w.ReadFrom(b)
fmt.Printf("%b\n", buf.Bytes())
}
输出:
[1100 0 0 0 11000000 1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100 100001]
[100 100010 1001101 11000 1100100 1110000 10111001 11001 1100 0 0 0 10000000 1001000 1100101 1101100 1101100 11011111111111111111111111111111111111111111111111111111111111111111111111起1100100 100001]]