C# DotNetZip与俄语编码有关的问题
我在我的项目中使用DotNetZipC# 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方法时
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”);}