ICsharpCode.sharpZlib这个组件直接使用会出现解压缩中文时出现错误。所以需要更改一下作者的源代码。。。以下为版本0.86为例。
1)在源代码中找到 ZipInputSteam.cs文件,打开它然后定位到 GetNextEntry()这个函数内。
2)在GetNextEntry里面有一句代码是得到文件名的代码。
string name = ZipConstants.ConvertToStringExt(flags, buffer);
我们现在要改造一下这一句代码,其实就是变一下CodePage属性。。。。代码参考如下:
int externallyDefinedCodepage = ZipConstants.DefaultCodePage;
ZipConstants.DefaultCodePage =System.Text.Encoding.Default.CodePage; //出现乱码就是因为CodePage不对造成的。
string name = ZipConstants.ConvertToStringExt(flags, buffer);
ZipConstants.DefaultCodePage = externallyDefinedCodepage;