SharpZipLib名称中包含丹麦字母的文件:丹麦字母未正确存储

时间:2014-03-27 16:25:31

标签: c# zip sharpziplib

我需要将文件存储在zip存档中。这些文件可能在文件名中包含丹麦语(和其他unicode)字符。我使用此代码基于 SharpZipLib

    public static void CompressIntoZip(IList<ZipFile> zipFiles, Stream destinationStream, GetFileStreamDelegate getFileStreamDelegate)
    {
        ZipConstants.DefaultCodePage = 65001;
        //ZipConstants.DefaultCodePage = 1252;

        var zipOutputStream = new ZipOutputStream(destinationStream);
        zipOutputStream.SetLevel(1);

        foreach (ZipFile zipFile in zipFiles)
        {
            var zipEntry = new ZipEntry(zipFile.FileName)
            {
                Size = zipFile.Size,
                Offset = 0,
                DateTime = zipFile.DateTime
            };
            zipOutputStream.PutNextEntry(zipEntry);

            using(Stream source = getFileStreamDelegate(zipFile.FileId))
            {
                CopyStream(source, zipOutputStream);
                zipOutputStream.Flush();
                destinationStream.Flush();
            }
        }
        zipOutputStream.Finish();
    }

一切正常,但在文件名中使用时,丹麦语字符未正确存储在zip文件中。例如Påsporet变为 P?sporet

我尝试了各种 ZipConstants.DefaultCodePage ,但到目前为止还没有运气。

你知道如何解决这个问题吗?

TIA Søren

0 个答案:

没有答案