2017-02-25 28 views
-2

请告诉我,我该如何实现Encoding.GetEncoding(“cp866”)? 在从存档导出过程中,俄语符号未正确显示。使用特定的编码读取ZipArchive

public static class ZipArchiveExtension 
{ 
    public static void ExtractToDirectory(this ZipArchive archive, string destinationDirectoryName, bool overwrite) 
    { 
     if (!overwrite) 
     { 
      archive.ExtractToDirectory(destinationDirectoryName); 
      return; 
     } 
     foreach (ZipArchiveEntry file in archive.Entries) 
     { 
      string completeFileName = Path.Combine(destinationDirectoryName, file.FullName); 
      if (file.Name == "") 
      { 
       Directory.CreateDirectory(Path.GetDirectoryName(completeFileName)); 
       continue; 
      } 
      file.ExtractToFile(completeFileName, true); 
     } 
    } 
} 

FileStream zipToOpen = new FileStream(zipPath, FileMode.Open); 
ZipArchive archive = new ZipArchive(zipToOpen); 
ZipArchiveExtension.ExtractToDirectory(archive, extractPath, true); 
zipToOpen.Dispose(); 

如System.IO.Compression:ZipFile.ExtractToDirectory(zipPath,extractPath,Encoding.GetEncoding( “CP866”));

回答