winZ中的SharpZipLib西里尔文件名

时间:2018-04-12 10:32:28

标签: c# sharpziplib

我有在Win10上创建的西里尔文件名的存档

        var path = "D:\\encoding.zip";
        using (var tempZip = new ZipOutputStream(System.IO.File.Create(path)))
        {
            for (int i = 0; i < 10; i++)
            {
                var entry = new ZipEntry($"Привет {i + 1}.txt")
                {
                    IsUnicodeText = true
                };
                tempZip.PutNextEntry(entry);
            }
        }

在win10中,我有正确的编码名称但是当我在Win7上打开这个档案时,我的编码不正确。

我尝试设置ZipConstants.DefaultCodePage = 866;但我得到了同样的错误。 我从DotNetZip和DotnetZip迁移了这个代码我也有这个错误,但我用它修复了它:

tempZip.AlternateEncoding = Encoding.GetEncoding(866);
tempZip.AlternateEncodingUsage = ZipOption.AsNecessary;

我还没有在SharpZLib中找到这个选项。 那我怎么能解决这个错误呢?

0 个答案:

没有答案