ファイル解凍で文字化けするのはOSによりエンコード形式が異なるのが原因
検索すればすぐにでてきますが、一応小ネタとして引用させていただきます。
Mac、Linuxではファイルを圧縮する際ファイル名をutf-8でエンコードするのに対し、Windowsではファイル名をCP932(Shift_JIS)でエンコードするのが原因。
ラプラスとかのソフトで開くと、文字化けしてしまうことがあるんです。
解凍ソフトのラプラスには文字化けしないよいうにする設定項目がない
ファイル解凍ソフトはラプラスを使わずに、window10のエクスプローラーで解凍すると文字化けはおこりませんでした。
解凍をラプラスに関連づけていると、ラプラスで解凍します。ラプラスに設定項目はないか探してみましたが、どうも見当たらないみたいです。よくよく考えているとなんでラプラスを使っているのかわからなくなりましたが、たまにwindowsでは開けない拡張子があるときに役に立つのかなと思いました。
7-zipを使って解凍する手もある
解凍・圧縮ソフトはラプラス以外にも「7-zip」という有名なソフトがあります。
こちらのソフトを使うとパスワードで保護された圧縮フォルダを作成することが可能です。
わたしが実際に使ったわけではないですが7-zipを使って解凍すればファイル名が文字化けしないかもしれません。↓
「7-Zip」7z形式などに対応した解凍・圧縮ソフト – 窓の杜
pythonスクリプトを使ってファイルを圧縮・解凍する
他の圧縮・解凍方法としてpythonスクリプトでファイルを圧縮・解凍する方法があります。
プログラミングの知識がないと難しいかもしれませんがとりあえずコードをのせておきます。pythonではzipfileモジュールとosモジュールを使うことによって、高速にファイルを圧縮できます。
zipfileモジュールを使って圧縮するコード
import zipfile
def compress_folder(folder_path, zip_path):
with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
# フォルダ内のすべてのファイルを圧縮する
for foldername, subfolders, filenames in os.walk(folder_path):
for filename in filenames:
file_path = os.path.join(foldername, filename)
# 圧縮するファイル名を指定して追加する
zipf.write(file_path, os.path.relpath(file_path, folder_path))
# 使用例
folder_to_compress = 'path/to/folder'
output_zip_file = 'path/to/output.zip'
compress_folder(folder_to_compress, output_zip_file)
zipfileモジュールを使って解凍するコード
import zipfile
import os
def extract_zip(zip_path, extract_to):
with zipfile.ZipFile(zip_path, 'r') as zipf:
# zipファイルを解凍先のフォルダに展開する
zipf.extractall(extract_to)
# 使用例
zip_file_to_extract = 'path/to/file.zip'
output_folder = 'path/to/extracted/folder'
extract_zip(zip_file_to_extract, output_folder)
コメント