戈朗 : can't decompress data with lzw package

标签 go lzw

我正在尝试使用 Go 创建压缩字符串池。这是我的代码 - http://play.golang.org/p/T5usLfU0fA

我无法解压用 compress/lzw 包压缩的 bin。 lzw.Writer 的输入是 [104 101 108 108 111 32 119 111 114 108 100],lzw.Reader 的输出是 [0 1 0 0 3 0 3 3 2 0 0]。他们绝对不匹配。

我正在创建具有相同参数的读取器和写入器(缓冲区除外)。 lzw.Reader 的缓冲区包含之前使用 lzw.Writer 压缩的数据。

最佳答案

lzw.NewReaderlzw.NewWriterlitWidth 参数从 2 更改为 8。

我不太了解 LZW,但看起来 litWidth 决定了每个传入字节中有多少位被认为是重要的。因此,值为 2 意味着所有输入字节必须为 0x00 - 0x03。

参见 http://play.golang.org/p/svjeVFntuE LZW 往返的最小示例。 7 的 litWidth 有效(但可能对 UTF-8 文本不安全),任何小于 7 的值都会失败。

关于戈朗 : can't decompress data with lzw package,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23201551/

相关文章:

google-app-engine - 应用引擎/去 : Using a new version of Go with the SDK

dictionary - LZW (Limpel-Ziv-Welch) 字典编码定界符问题

go - 通过进口商获取有关包裹的所有信息并反射(reflect)?

golang websocket 数据不对

golang如何让template.Execute写成HTML页面

php - PHP可以解压taz文件吗? (.tar.Z)

c++ - LZW压缩&字典

java - Base64 无法将字符串解码为字节数组

c++ - C++中如何检测字符串是否被LZW算法压缩

json - 所有字段的 "omitempty"