mirror of
https://github.com/adamhathcock/sharpcompress.git
synced 2026-09-23 15:34:34 +00:00
Merge pull request #696 from stakira/master
Ignores UnicodePathExtra if forced encoding is specified
This commit is contained in:
@@ -55,7 +55,7 @@ namespace SharpCompress.Common.Zip.Headers
|
||||
LoadExtra(extra);
|
||||
|
||||
var unicodePathExtra = Extra.FirstOrDefault(u => u.Type == ExtraDataType.UnicodePathExtraField);
|
||||
if (unicodePathExtra != null)
|
||||
if (unicodePathExtra != null && ArchiveEncoding.Forced == null)
|
||||
{
|
||||
Name = ((ExtraUnicodePathExtraField)unicodePathExtra).UnicodeName;
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace SharpCompress.Common.Zip.Headers
|
||||
LoadExtra(extra);
|
||||
|
||||
var unicodePathExtra = Extra.FirstOrDefault(u => u.Type == ExtraDataType.UnicodePathExtraField);
|
||||
if (unicodePathExtra != null)
|
||||
if (unicodePathExtra != null && ArchiveEncoding.Forced == null)
|
||||
{
|
||||
Name = ((ExtraUnicodePathExtraField)unicodePathExtra).UnicodeName;
|
||||
}
|
||||
|
||||
@@ -754,5 +754,37 @@ namespace SharpCompress.Test.Zip
|
||||
Assert.Equal(4, x);
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Zip_Forced_Ignores_UnicodePathExtra()
|
||||
{
|
||||
var zipPath = Path.Combine(TEST_ARCHIVES_PATH, "Zip.UnicodePathExtra.zip");
|
||||
using (var stream = File.Open(zipPath, FileMode.Open, FileAccess.Read))
|
||||
{
|
||||
IArchive archive = ArchiveFactory.Open(stream, new ReaderOptions
|
||||
{
|
||||
ArchiveEncoding = new ArchiveEncoding
|
||||
{
|
||||
Default = Encoding.GetEncoding("shift_jis"),
|
||||
}
|
||||
});
|
||||
IReader reader = archive.ExtractAllEntries();
|
||||
reader.MoveToNextEntry();
|
||||
Assert.Equal("궖귛궖귙귪궖귗귪궖귙_wav.frq", reader.Entry.Key);
|
||||
}
|
||||
using (var stream = File.Open(zipPath, FileMode.Open, FileAccess.Read))
|
||||
{
|
||||
IArchive archive = ArchiveFactory.Open(stream, new ReaderOptions
|
||||
{
|
||||
ArchiveEncoding = new ArchiveEncoding
|
||||
{
|
||||
Forced = Encoding.GetEncoding("shift_jis"),
|
||||
}
|
||||
});
|
||||
IReader reader = archive.ExtractAllEntries();
|
||||
reader.MoveToNextEntry();
|
||||
Assert.Equal("きょきゅんきゃんきゅ_wav.frq", reader.Entry.Key);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BIN
tests/TestArchives/Archives/Zip.UnicodePathExtra.zip
Normal file
BIN
tests/TestArchives/Archives/Zip.UnicodePathExtra.zip
Normal file
Binary file not shown.
Reference in New Issue
Block a user