ZipFile注释中的编码错误

本文关键字:编码 错误 注释 ZipFile | 更新日期: 2023-09-27 18:26:00

我正在使用Ionic.ZIP.ZipFile类读取ZIP文件的注释,重音字符(如éêè)似乎有问题。就我而言,我没有收到"Éric",而是收到"╔ric".

我的代码是:

using (ZipFile zipFile = new ZipFile(path))
{
  comment = zipFile.Comment;
}

Path是ZIP文件的路径。我也试着直接把编码,但同样的结果(像这样):

using (ZipFile zipFile = new ZipFile(path, Encoding.UTF8))
{
  comment = zipFile.Comment;
}

注释有特定的编码吗?

ZipFile注释中的编码错误

多亏了Moby Disk,我找到了解决方案。在将注释编码为您使用的注释(在我的情况下是默认的注释)之前,您需要获得正确的注释编码。

代码如下:

using (ZipFile zipFile = new ZipFile(path))
{
  byte[] bytes = Encoding.GetEncoding(437).GetBytes(zipFile.Comment);
  comment = Encoding.Default.GetString(bytes);
}