Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DotNetZip与俄语编码有关的问题_C#_.net_Dotnetzip - Fatal编程技术网

C# DotNetZip与俄语编码有关的问题

C# DotNetZip与俄语编码有关的问题,c#,.net,dotnetzip,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方法时

我在我的项目中使用DotNetZip

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

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

所有人的通用方法是:

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

这种方式在新版本中对我有效

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

你可以先看一下定义。 然后你会发现:

public ZipFile(Encoding encoding);
所以你可以用这个:

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

您是否正在使用任何特定的ZIP库?您所说的“坏名字”是什么意思?你能给出一个具体的例子吗?我用最新的DotNetZip版本试用过,没有出现异常:
使用(var-zip=new-ZipFile()){zip.AlternateEncoding=Encoding.GetEncoding(866);zip.AddDirectoryByName(“(*.öС莳”);zip.Save(“archive.zip”);}