🐡
Mac -> Windowsで文字化けしないzipの作り方
windowsで解凍すると文字化けする
windows userに言われて知ったけど、macの右クリックでzip化したものはwindowsで解凍すると文字化けするらしい。
これは単に文字コードの問題なので、文字コードを変換してやればいいが、zip化って基本は大量ファイルに対してするものなので、文字コードを変換するのは大変。
軽くググると怪しいダウンロードサイトがいっぱい出る
使うの怖い
以下でいけた
# %%
import os
import zipfile
def zip_folder_for_windows(source_folder, output_zip):
"""
ZIP a folder with filenames encoded in CP932 for compatibility with Windows.
Args:
source_folder (str): The path of the folder to be zipped.
output_zip (str): The path of the output ZIP file.
"""
with zipfile.ZipFile(output_zip, "w", zipfile.ZIP_DEFLATED) as zipf:
for root, dirs, files in os.walk(source_folder):
for file in files:
file_path = os.path.join(root, file)
# Encode the file path relative to the source folder in CP932
arcname = (
os.path.relpath(file_path, source_folder)
.encode("cp932", "ignore")
.decode("cp932")
)
zipf.write(file_path, arcname)
# Example usage
src_dir = "/path/to/source/folder"
output_zip = "output.zip"
zip_folder_for_windows(source_folder, output_zip)
Discussion