DotNetZip - 提取包含非ascii字符的文件

时间:2014-12-25 22:16:37

标签: .net encoding extract dotnetzip mojibake

我正在尝试提取包含包含日文字符的文件的zip存档。

当我在提取后查看它们的内容时,日文字符显示为乱码。 这也适用于Winrar / Winzip,这就是我打算创建这个程序的原因。

起初我也遇到了文件名这个问题,但我用以下代码中的编码解决了这个问题。

Dim subFolder As String = Path.GetFileNameWithoutExtension(fileInput(i))
Using zip = New ZipFile(fileInput(i), Encoding.GetEncoding(932))
    For Each f In zip
        Directory.CreateDirectory(dirOutput & "\" & subFolder)
        f.Extract(dirOutput & "\" & subFolder, ExtractExistingFileAction.OverwriteSilently)
    Next
End Using

我尝试了各种尝试获取文件内容以正确编码所有失败的方法。当我创建一个包含日文字符的文本文件并将其保存为UTF8并将其添加到新的zip存档时,使用以下代码将其解压缩,内容输出正确。

但我有几个我已下载的zip文件,它们的行为方式不一样,而且有乱码内容。我有一个朋友没有同样的问题所以我100%肯定这不是文件的编码问题,她使用日语系统区域设置,而我使用英语,但我希望能够提取这些文件而不必切换系统区域设置。

0 个答案:

没有答案