日本語の文字を含むファイルを含む zip アーカイブを抽出しようとしています。
解凍して内容を見ると、日本語の文字が文字化けしています。これは Winrar/Winzip でも発生するため、このプログラムを作成するつもりでした。
最初はファイル名にもこの問題がありましたが、以下のコードのエンコーディングで修正しました。
Dim subFolder As String = Path.GetFileNameWithoutExtension(fileInput(i))
Using zip = New ZipFile(fileInput(i), Encoding.GetEncoding(932))
For Each f In zip
Directory.CreateDirectory(dirOutput & "\" & subFolder)
f.Extract(dirOutput & "\" & subFolder, ExtractExistingFileAction.OverwriteSilently)
Next
End Using
ファイルの内容を正しくエンコードするためにさまざまな方法を試しましたが、すべて失敗しました。日本語の文字を含むテキスト ファイルを作成し、UTF8 で保存して新しい zip アーカイブに追加し、以下のコードで抽出すると、内容が正しく出力されます。
しかし、ダウンロードしたいくつかの zip ファイルは同じように動作せず、代わりに意味不明な内容になっています。これと同じ問題を抱えていない友人がいるので、ファイルのエンコーディングの問題ではないと 100% 確信しており、彼女は日本語のシステム ロケールを使用していますが、私は英語を使用していますが、これらのファイルを抽出せずに抽出できるようにしたいと考えています。システム ロケールを切り替えます。