DotNetZip与俄语编码有关

时间:2010-04-19 06:52:14

标签: c# .net dotnetzip

我在我的项目中使用DotNetZip。

using (var zip = new ZipFile()) 
{ 
   zip.ProvisionalAlternateEncoding = System.Text.Encoding.GetEncoding(866); 
   zip.AddFile(filename, "directory\\in\\archive"); 
   zip.Save("archive.zip"); 
} 

一切正常但是当我使用方法AddDirectoryByName时,我的目录名称不正确。

3 个答案:

答案 0 :(得分:8)

通用的方式是:

zip.AlternateEncoding = Encoding.UTF8;
zip.ProvisionalAlternateEncoding = Encoding.GetEncoding(Console.OutputEncoding.CodePage);
zip.AlternateEncodingUsage = ZipOption.AsNecessary;

答案 1 :(得分:5)

这种方式在新版本中为我工作

zip.AlternateEncodingUsage = ZipOption.Always;
zip.AlternateEncoding = Encoding.GetEncoding(866); 

答案 2 :(得分:3)

您可以先窥视定义。 然后你会发现:

public ZipFile(Encoding encoding);

所以你可以使用它:

using (ZipFile zip = new ZipFile(Encoding.UTF8))