我正在使用DotNetZip.当我归档通常具有英文名称的文件时.但是当我在结果档案中存档带有俄文名称的文件时,文件名称不正确.有人说字符串
ZipConstants.DefaultCodePage = 866;
Run Code Online (Sandbox Code Playgroud)
但它没有编译.我还使用zip.UseUnicodeAsNecessary属性,并将我的文件名转换为utf8和utf7.
pri*_*e23 18
zip.AlternateEncodingUsage = ZipOption.Always;
zip.AlternateEncoding = Encoding.UTF8;
Run Code Online (Sandbox Code Playgroud)
在DotNetZip中创建一个unicode zip文件:
using (var zip = new ZipFile())
{
zip.UseUnicodeAsNecessary= true;
zip.AddFile(filename, "directory\\in\\archive");
zip.Save("archive.zip");
}
Run Code Online (Sandbox Code Playgroud)
如果您想要特定的特定代码页,那么您必须使用其他内容:
using (var zip = new ZipFile())
{
zip.ProvisionalAlternateEncoding = System.Text.Encoding.GetEncoding(866);
zip.AddFile(filename, "directory\\in\\archive");
zip.Save("archive.zip");
}
Run Code Online (Sandbox Code Playgroud)
在使用之前,请检查这些属性的文档!