Frage

Ich bin mit DotNetZip. Wenn ich Datei bin Archivierung, die alle normalerweise Englisch Namen haben. aber wenn ich die Archivierung von Dateien mit dem russischen Namen in Folge Archiv mit schlechten Namen der Datei. Einig peoplese sagte, dass Zeichenfolge

ZipConstants.DefaultCodePage = 866;

Aber es kompiliert nicht. Ich benutze auch zip.UseUnicodeAsNecessary Eigenschaften und meine Dateinamen in UTF-8 und UTF7 konvertieren.

War es hilfreich?

Lösung

Um eine Unicode-Zip-Datei in DotNetZip zu erstellen:

using (var zip = new ZipFile())
{
   zip.UseUnicodeAsNecessary= true;
   zip.AddFile(filename, "directory\\in\\archive");
   zip.Save("archive.zip");
}

Wenn Sie eine bestimmte, spezifische Codepage wollen, dann müssen Sie etwas anderes nutzen:

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

Überprüfen Sie der Dokumentation für diese Eigenschaften vor der Verwendung!

Andere Tipps

zip.AlternateEncodingUsage = ZipOption.Always;
zip.AlternateEncoding = Encoding.UTF8;

Versuchen Sie, diese

zip.AddEntry("yourfile.txt", "yourtext", Encoding.GetEncoding("utf-8"));

Kodierungsart: Codierungstyp info

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top