1

我正在尝试提取包含多个文件的 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);

有人能告诉我这个错误吗?

4

1 回答 1

1

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

于 2020-01-15T19:55:55.390 回答