我使用DotNetZip。当我归档文件,其中有英文名字都正常。但是当我归档文件与档案结果俄文名字与文件的坏话。一些peoplese说,串

ZipConstants.DefaultCodePage = 866;

但它不能编译。我也用zip.UseUnicodeAsNecessary属性,我的文件名转换为UTF8和UTF7。

有帮助吗?

解决方案

要创建在DotNetZip一个unicode zip文件:

using (var zip = new ZipFile())
{
   zip.UseUnicodeAsNecessary= true;
   zip.AddFile(filename, "directory\\in\\archive");
   zip.Save("archive.zip");
}

如果你想要一个特定的,具体的代码页,则必须使用别的东西:

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

检查使用它们之前,这些属性的文件

其他提示

zip.AlternateEncodingUsage = ZipOption.Always;
zip.AlternateEncoding = Encoding.UTF8;

尝试此

zip.AddEntry("yourfile.txt", "yourtext", Encoding.GetEncoding("utf-8"));

编码类型:编码类型信息

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top