SharpZipLib解压缩时中文名乱码[解决]

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;

 

 

posted on 2010-11-04 14:44  lock  阅读(1275)  评论(0)    收藏  举报