From c7fc5f8819e5f7a3cb0cea14b93ebae9b7203141 Mon Sep 17 00:00:00 2001 From: mrgleba Date: Thu, 11 Jun 2015 08:36:33 +0200 Subject: [PATCH] ZipWriter: use ArchiveEncoding.Default ShaprCompress is used internally in Mono to implement System.IO.Compression, which allows the user to specify path encoding. The change allows for specifying the encoding via ArchiveEncoding.Default. --- SharpCompress/Writer/Zip/ZipWriter.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/SharpCompress/Writer/Zip/ZipWriter.cs b/SharpCompress/Writer/Zip/ZipWriter.cs index 4bbac268..e65cfd87 100644 --- a/SharpCompress/Writer/Zip/ZipWriter.cs +++ b/SharpCompress/Writer/Zip/ZipWriter.cs @@ -123,11 +123,11 @@ namespace SharpCompress.Writer.Zip private int WriteHeader(string filename, DateTime? modificationTime) { - byte[] encodedFilename = Encoding.UTF8.GetBytes(filename); + byte[] encodedFilename = ArchiveEncoding.Default.GetBytes(filename); OutputStream.Write(BitConverter.GetBytes(ZipHeaderFactory.ENTRY_HEADER_BYTES), 0, 4); OutputStream.Write(new byte[] {63, 0}, 0, 2); //version - HeaderFlags flags = HeaderFlags.UTF8; + HeaderFlags flags = ArchiveEncoding.Default == Encoding.UTF8 ? HeaderFlags.UTF8 : (HeaderFlags)0; if (!OutputStream.CanSeek) { flags |= HeaderFlags.UsePostDataDescriptor; @@ -158,7 +158,7 @@ namespace SharpCompress.Writer.Zip private void WriteEndRecord(uint size) { - byte[] encodedComment = Encoding.UTF8.GetBytes(zipComment); + byte[] encodedComment = ArchiveEncoding.Default.GetBytes(zipComment); OutputStream.Write(new byte[] {80, 75, 5, 6, 0, 0, 0, 0}, 0, 8); OutputStream.Write(BitConverter.GetBytes((ushort) entries.Count), 0, 2);