zip形式ではエンコード形式が指定されていないため、Windowsで生成されたzipファイルのエンコードはGBK/GB2312などとなります。そのため、Linuxではデフォルトのエンコードが. UTF8。
現在、インターネット上で unzip -O cp936 という方法が出回っていますが、一部の unzip には -O オプションがありません。
私が使用しているバージョン、unzip 6.0 debian 修正バージョンには、このオプションがあります
エンコーディングの問題により、Linux で解凍すると zip ファイル内の中国語ファイルが文字化けして表示されます
archlinux を使用している場合は、AUR を使用してくださいこの問題を解決するには、unzip-natspec をインストールします。 問題
現時点では、unzip xxx.zip を使用してファイル
を正しく解凍し、ファイル ローラー アーカイブ マネージャーで操作できます。中国語の名前はまだ文字化けしています。 file-roller が p7zip を優先的に使用するためだと言われました
p7zip を削除した後の問題 解決策
しかし、同時に p7zip ソフトウェア パッケージも使用できるようにしたいのですが、この問題を解決する方法を知っている人はいますか?
ここからコードをダウンロードして調べてみると、そのようなロジックが見つかりました
/* give priority to 7z, unzip and zip that supports ZIP files better. */if ((strcmp (mime_type, "application/zip") == 0)|| (strcmp (mime_type, "application/x-cbz") == 0)) {if (_g_program_is_available ("7z", check_command)) {return capabilities; }if (!_g_program_is_available ("unzip", check_command)) { capabilities |= FR_ARCHIVE_CAN_READ; }if (!_g_program_is_available ("zip", check_command)) { capabilities |= FR_ARCHIVE_CAN_WRITE; }return capabilities; }
これはハードコーディングされているため、コードにパッチを当てる以外に良い解決策はないようです
最終的な解決策は、同様のソフトウェアを見つけることでした。 AURパッケージp7zip-natspecにも存在します
このパッケージをインストールすると、問題は完全に解決されるはずです。なぜなら、上記の方法を使用して問題をすでに解決しているため、これは試行しません
以上がLinuxでzipファイルを解凍する際に文字化けが発生する問題を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。