我正在尝试提取包含包含日文字符的文件的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%肯定这不是文件的编码问题,她使用日语系统区域设置,而我使用英语,但我希望能够提取这些文件而不必切换系统区域设置。