Xaver
Xaver

Reputation: 1001

DotNetZip trouble with russian encoding

i use 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"); 
} 

all ok but when i use method AddDirectoryByName i have a bad directory names.

Upvotes: 5

Views: 6904

Answers (3)

Tsai Jing Sien
Tsai Jing Sien

Reputation: 31

You may Peek Definition first. Then you will find this:

public ZipFile(Encoding encoding);

So you can use this:

using (ZipFile zip = new ZipFile(Encoding.UTF8))

Upvotes: 3

Igor Semin
Igor Semin

Reputation: 2496

This way in new version work for me

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

Upvotes: 5

Pawel Niemczyk
Pawel Niemczyk

Reputation: 96

Universal way for all is :

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

Upvotes: 8

Related Questions