DotNetZip Probleme mit Codierung
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.
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