Golang:无法使用lzw包解压缩数据

Evg*_*zin 0 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压缩的数据.

lnm*_*nmx 5

更改litWidth参数lzw.NewReader,并lzw.NewWriter从2到8.

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

有关LZW往返的最小示例,请参见http://play.golang.org/p/svjeVFntuE.一个litWidth7件作品(但想必也不为UTF-8文本安全),任何少于7失败.