DotNetZip をしばらく使用していますが、問題が発生しました。非ラテン文字 (特にベトナム語) を含むテキスト (ファイル名ではなく、実際のテキスト コンテンツ) があります。DotNetZip を使用してこのコンテンツを圧縮すると、解凍するたびにテキストが文字化けします (悪い意味で変更されます)。
Dim strOriginal As String = "Đinh Quỳnh Ngô Nguyễn Phạm Tuấn Vũ Phương Ngọc Châu Trần Thị Ngọc Hồng Hiền Tô"
Using zip As New Ionic.Zip.ZipFile()
zip.AlternateEncoding = System.Text.Encoding.Unicode
zip.AlternateEncodingUsage = Ionic.Zip.ZipOption.Always
zip.AddEntry("data", strOriginal)
zip.Save("test.zip")
End Using
Dim strContents As String
Using zip As New Ionic.Zip.ZipFile("test.zip")
Using ms As New System.IO.MemoryStream()
zip.Entries(0).Extract(ms)
ms.Position = 0
Using sr As New System.IO.StreamReader(ms)
strContents = sr.ReadToEnd
sr.Close()
End Using
ms.Close()
End Using
End Using
If strOriginal = strContents Then
MsgBox("Happy")
Else
MsgBox("Sad")
End If
次のエンコード オプションを試しました: UTF7、UTF8、Unicode、UTF32、および BigEndianUnicode。すべてが悪い結果をもたらします。
これはバグですか、それとも私の実装が何らかの形でオフになっていますか?
念のため、私は VB.Net 2010、Win7 x64、.Net 3.5、および DotNetZip 1.9.1.8 を使用しています。