5

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.

Xaver
  • 991
  • 2
  • 19
  • 37
  • Is there any particular ZIP library you are using? – Nayan Apr 19 '10 at 09:12
  • What do you mean by "bad name"? Can you post a specific example? – Cheeso Nov 08 '10 at 02:55
  • I've tried it with the newest DotNetZip version and do not get an exception: `using (var zip = new ZipFile()) { zip.AlternateEncoding = Encoding.GetEncoding(866); zip.AddDirectoryByName("Россия"); zip.Save("archive.zip"); }` – Martin Buberl Dec 19 '11 at 21:17

3 Answers3

8

Universal way for all is :

zip.AlternateEncoding = Encoding.UTF8;
zip.ProvisionalAlternateEncoding = Encoding.GetEncoding(Console.OutputEncoding.CodePage);
zip.AlternateEncodingUsage = ZipOption.AsNecessary;
default locale
  • 13,035
  • 13
  • 56
  • 62
5

This way in new version work for me

zip.AlternateEncodingUsage = ZipOption.Always;
zip.AlternateEncoding = Encoding.GetEncoding(866); 
Igor Semin
  • 2,486
  • 1
  • 20
  • 21
3

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))