“项目打包为zip”功能生成的zip文件内产生乱码 / The "Export Project as ZIP" feature generates a ZIP file in which characters are corrupted / 「プロジェクトをZIPとしてエクスポート」機能で生成されたZIPファイル内で文字化けが発生します

ファイルやフォルダ名の中国語の文字が文字化けしてしまうが、同じ名前のファイルをGodotでエクスポートすると問題なく表示される。

また、AIに問い合わせたところ、以下の説明を得た。

さらにAIに尋ねたところ、この問題を解決するPythonスクリプトが得られた。

import zipfile

# =======================
# 入力ZIPファイルのパスと出力ZIPファイルのパスを設定
# =======================
入力圧縮ファイルパス = r"C:\Users\Administrator\Documents\ActionGameMaker\バックアップ.zip"   # 元のAGM ZIPファイル
出力圧縮ファイルパス = r"C:\Users\Administrator\Documents\ActionGameMaker\修復.zip"  # 修復後の出力ZIPファイル

with zipfile.ZipFile(入力圧縮ファイルパス, 'r') as 原ZIP:
    with zipfile.ZipFile(出力圧縮ファイルパス, 'w', zipfile.ZIP_DEFLATED, allowZip64=True) as 新ZIP:
        for info in 原ZIP.infolist():
            # 元のファイルデータを読み込む
            データ = 原ZIP.read(info.filename)
            # UTF-8でファイル名を修復
            try:
                修復後ファイル名 = info.filename.encode('cp437').decode('utf-8')
            except Exception as e:
                修復後ファイル名 = info.filename  # 変換失敗時は元の名前を保持
                print(f"変換失敗: {info.filename}, {e}")
            # 新しいZIPに書き込み、UTF-8ファイル名を指定
            info_utf8 = zipfile.ZipInfo(修復後ファイル名)
            info_utf8.external_attr = info.external_attr
            新ZIP.writestr(info_utf8, データ)
「いいね!」 2