DotNetZip error with Russian encoding

I am using DotNetZip in my project.

using (var zip = new ZipFile()) 
{ 
   zip.ProvisionalAlternateEncoding = System.Text.Encoding.GetEncoding(866); 
   zip.AddFile(filename, "directory\\in\\archive"); 
   zip.Save("archive.zip"); 
} 

everything is fine, but when I use the AddDirectoryByName method, I have the wrong directory names.

+3
source share
3 answers

A universal way for everyone:

zip.AlternateEncoding = Encoding.UTF8;
zip.ProvisionalAlternateEncoding = Encoding.GetEncoding(Console.OutputEncoding.CodePage);
zip.AlternateEncodingUsage = ZipOption.AsNecessary;
+6
source

This method in the new version works for me

zip.AlternateEncodingUsage = ZipOption.Always;
zip.AlternateEncoding = Encoding.GetEncoding(866); 
+4
source

First you can define a Peek Definition. Then you will find the following:

public ZipFile(Encoding encoding);

So you can use this:

using (ZipFile zip = new ZipFile(Encoding.UTF8))
+2
source

Source: https://habr.com/ru/post/1741733/


All Articles