diff --git a/src/SharpCompress/Common/Zip/Headers/DirectoryEntryHeader.cs b/src/SharpCompress/Common/Zip/Headers/DirectoryEntryHeader.cs index e7502d26..b1c4860a 100644 --- a/src/SharpCompress/Common/Zip/Headers/DirectoryEntryHeader.cs +++ b/src/SharpCompress/Common/Zip/Headers/DirectoryEntryHeader.cs @@ -1,6 +1,7 @@ using System; using System.IO; using System.Linq; +using System.Text; namespace SharpCompress.Common.Zip.Headers { @@ -16,6 +17,11 @@ namespace SharpCompress.Common.Zip.Headers Version = reader.ReadUInt16(); VersionNeededToExtract = reader.ReadUInt16(); Flags = (HeaderFlags)reader.ReadUInt16(); + if ((Flags & HeaderFlags.UTF8) == 0) + { + // IBM Code Page 437 + ArchiveEncoding.Default = Encoding.GetEncoding("iso-8859-1"); + } CompressionMethod = (ZipCompressionMethod)reader.ReadUInt16(); LastModifiedTime = reader.ReadUInt16(); LastModifiedDate = reader.ReadUInt16(); diff --git a/src/SharpCompress/Common/Zip/Headers/LocalEntryHeader.cs b/src/SharpCompress/Common/Zip/Headers/LocalEntryHeader.cs index 2b89385b..eaf0f62c 100644 --- a/src/SharpCompress/Common/Zip/Headers/LocalEntryHeader.cs +++ b/src/SharpCompress/Common/Zip/Headers/LocalEntryHeader.cs @@ -15,6 +15,11 @@ namespace SharpCompress.Common.Zip.Headers { Version = reader.ReadUInt16(); Flags = (HeaderFlags)reader.ReadUInt16(); + if ((Flags & HeaderFlags.UTF8) == 0) + { + // IBM Code Page 437 + ArchiveEncoding.Default = Encoding.GetEncoding("iso-8859-1"); + } CompressionMethod = (ZipCompressionMethod)reader.ReadUInt16(); LastModifiedTime = reader.ReadUInt16(); LastModifiedDate = reader.ReadUInt16();