Golang:不能用lzw包解压缩数据

时间:2014-04-21 16:37:03

标签: 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压缩的数据。

1 个答案:

答案 0 :(得分:5)

litWidthlzw.NewReader的{​​{1}}参数从2更改为8。

我对LZW了解不多,但看起来lzw.NewWriter确定每个输入字节中有多少位被认为是重要的。因此,值为2表示所有输入字节必须为0x00 - 0x03。

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