我正在尝试提取包含多个文件的zip。有些文件的名称中包含"§"字符("abc(§7(abc.txt">(。 拆包时,
System.IO.Compression.ZipFile.ExtractToDirectory(string sourceArchiveFileName, string destinationDirectoryName);
但是,"§"字符被翻译成"õ"(拉丁小写字母O和波浪号(字符。
我已经尝试更改编码。但只有 ASCII 或 UTF-8(默认(
System.IO.Compression.ZipFile.ExtractToDirectory(sourceArchiveFileName, destinationDirectoryName, Encoding entryNameEncoding);
有人能够告诉我错误吗?
Windows在zip中的Unicode文件名上表现不佳。 使用 Enconding 850 可以解决这个问题。
Encoding.GetEncoding(850);
看起来它在 .Net Framework 4.8 中得到了修复,但我现在无法测试它。
来源:
https://devblogs.microsoft.com/oldnewthing/20180515-00/?p=98755 http://archives.miloush.net/michkap/archive/2012/01/04/10252916.html