"IBM437"不是ZipFile读取方法支持的编码名称。

21

使用我的代码执行此操作时,我遇到了一个问题:

using (ZipFile archive = ZipFile.Read(File))    //<== Crash Here!
{
    foreach (ZipEntry entry in archive.Entries)
    {
        entry.Extract(UnZipFolder.Name.ToString(), ExtractExistingFileAction.OverwriteSilently);   
    }
}

在使用ZipFile尝试读取我的文件时,由于文件名是字符串并且包含 sincrofit.zip ,因此程序崩溃并抛出以下异常:

'System.ArgumentException' 附加信息:“IBM437”不是受支持的编码名称。


编码名称为"437"。把文件发回去,你不想要它。 - Hans Passant
为什么不想要它?:O - Merlí Escarpenter Pérez
5
如果您正在使用.NET Core,这个链接应该可以解决您的问题:https://dev59.com/7FoU5IYBdhLWcg3wCz2X - M. Mennan Kara
1个回答

49

在Visual Studio中:

  1. 打开“程序包管理器控制台”,输入Install-Package System.Text.Encoding.CodePages -Version 4.4.0,根据需要更改版本号。

  2. 将以下行添加到您的代码中:Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

  3. 如有必要,请附加所需指令。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接