我试图使用sharpziplib解压缩一些文件。问题是,它返回垃圾字符而不是特殊字符和日语字符。在获取zip文件中的文件之前,有没有将文件名转换为unicode? 我目前有以下代码。
foreach (ZipEntry zipEntry in zf)
{
zipEntry.IsUnicodeText = true;
if (!zipEntry.IsFile)
{
continue;
}
答案 0 :(得分:0)
所以我试图用sharpziplib解码这些文件时运气不佳。我切换到dotnetzip并将编码更改为932,sharpziplib在解压缩时似乎没有?我会回答我自己的问题,因为我没有看到很多关于这个问题的参考文献以及将来可能会遇到这个问题的其他人。
using (ZipFile archive = new ZipFile(archiveFilenameIn, Encoding.GetEncoding(932)))
{
archive.Password = password;
archive.Encryption = EncryptionAlgorithm.PkzipWeak;
archive.StatusMessageTextWriter = Console.Out;
String fullZipToPath = Path.Combine(outFolder, Path.GetFileNameWithoutExtension(archiveFilenameIn));
//string directoryName = Path.GetDirectoryName(fullZipToPath);
if (fullZipToPath.Length > 0)
Directory.CreateDirectory(fullZipToPath);
archive.ExtractAll(fullZipToPath, ExtractExistingFileAction.Throw);
}
编辑:所以我玩了sharpziplib,实际上我发现我可以设置默认代码页。之后工作正常。
ZipConstants.DefaultCodePage = 932;