「取引先から送られてきたzipファイルを開いたら、ファイル名が文字化けしていて内容がわからない...」「文字化け後のファイル名が長すぎて、削除できなくて困った…」このような経験はありませんか?
この記事では、zipファイルの文字化けの原因から、Windows、Mac、Linux環境での具体的な解決策まで、徹底的に解説します。
1. zipが文字化けする原因
zip が文字化けする原因には、主に次の4つが考えられます。
• OSの違い
• ロケールの設定の違い
• 古い圧縮形式(例: LZH)を使用している
■ OSの違い
zipファイルに格納されたファイル名などの文字コードが、作成したOSと解凍したOSで異なる場合に発生します。例えば、WindowsのデフォルトであるShift_JISで作られたzipを、UTF-8がデフォルトのmacOSで解凍すると文字化けしやすいです。
■ ロケールの設定の違い
ロケールとは、地域や言語に関する設定です。zipソフトがロケール情報を参照してファイル名をエンコード/デコードする際に、作成時と解凍時でロケールが異なると文字化けします。特に、日本語環境以外で作成されたzipで問題が起こりやすいようです。
■ 古い圧縮形式(例: LZH)を使用している
古い圧縮形式はUnicodeに対応していない場合があり、日本語などのマルチバイト文字を扱う際に問題が発生しやすいです。LZH形式は特に文字コードの扱いが曖昧なので、早めに変換しておくことがおすすめです。
2. Windowsでzip文字化けを回避する解凍&圧縮方法
2.1 Windowsでzipを解凍する場合
Windows10から、標準の ZIP アーカイブ機能で UTF-8 エンコードがサポートされるようになりました。これにより以前は文字化けしていた Unicode 文字を含むファイル名やディレクトリ名が、正しく表示される可能性が高まりました。文字コードの自動判別機能も向上し、以前のバージョンよりも文字化けしにくくなっているようです。
2.2 Windowsで文字化けしにくいように圧縮する方法(フリーソフトを使う場合)
Windowsで文字化けしないように圧縮する方法には、次の2つがあります。
• 様々な文字コードに対応しているフリーソフトを使って圧縮する
• PowerShell でUTF-8を指定して圧縮する
まず、様々な文字コードに対応しているフリーソフトを使って圧縮する方法をご紹介します。標準機能ではなく様々な文字コードに対応しているフリーソフトを使用することで、文字化けを回避することができます。
おすすめの圧縮・解凍ソフトウェアは、無料かつ高機能な「7-Zip」です。多くの圧縮形式に対応しており、パスワード付きファイルにしたり、圧縮したファイルを分割したりといった機能もあります。サイズが大きすぎてメールに添付できないファイルを分割送信したいときにも便利ですので、ぜひ活用してみてください。
【圧縮・解凍ソフト 7-zip】(URL:https://7-zip.opensource.jp/)
7-zipでは、次の手順で操作するとUTF-8で圧縮することができます。
• まず対象ファイルを右クリックし「圧縮」を選択して圧縮メニューを表示します。
• 圧縮メニューが開いたら、図のように「パラメーター」の項目に「cu=on」と入力してOKボタンを押します。
公式のユーザーズガイドによると、「cu」パラメータは「7-Zip uses UTF-8 for file names that contain non-ASCII symbols.」と説明されています。つまり、「ASCII文字以外が含まれている場合、UTF-8を使いますよ」という意味のパラメータであり、これを「on」つまり有効にすることでUTF-8で圧縮されるというわけです。
▶ 【7-zip - compression Method】
2.3 Windowsで文字化けしにくいように圧縮する方法(PowerShell を使う場合)
PowerShell の標準機能である「Compress-Archive」コマンドには、UTF-8を指定して圧縮する方法はありません。ただし Compress-Archive を使用すると、デフォルトでUTF-8互換の形式でファイルを圧縮します。
Compress-Archive -Path 入力ファイル or フォルダ名 -DestinationPath 出力ZIPファイル名.zip
-Path | 圧縮したいファイルまたはフォルダのパスを指定する |
---|---|
-DestinationPath | 作成するZIPファイルのパスを指定する |
-Update | 既存のZIPファイルに対して更新を行う際に使用する |
-Force | 出力先に同じ名前のZIPファイルがすでに存在する場合、それを上書きするために使用する |
それでも文字化けする場合は、次のことを試してみてください。
• PowerShell 7 以降を使用する。
• システムロケールを UTF-8 と設定する。
• 7-Zip をコマンドラインから使用して ZIP ファイルを作成する。
3. Mac OS Xでzip文字化けを回避する解凍&圧縮方法
3.1 Mac OS Xでzipを解凍する場合
macOS は、以前からZIP ファイルの文字コードを自動的に判別する機能を備えています。Ventura/Sonoma でも、従来と同様に標準機能で対応しています。
古い文字コードやMacが非対応の特殊な文字をファイル名に含んでいる場合、それでも文字化けが起こることがあります。その際には、次の方法で解凍できる可能性がありますので、お試しください。
■ 古い文字コードを使っている場合
ターミナルを開き、次のコマンドを実行してください。
unzip -O 解凍したい文字コード 解凍したいZIPファイル名.zip
例えば Shift_JIS(cp932)の場合、次のように記述します。
unzip -O cp932 example.zip
■ Macが非対応の特殊な文字をファイル名に含んでいる場合
文字化けしているファイル名を修正してから、解凍します。それでも解凍できない場合は Windows PCを使って解凍し、ファイル名を修正してから macOS に戻す方法が近道です。
3.2 Mac OS Xで文字化けしにくいように圧縮する方法(標準機能を使う場合)
macOS の標準機能(Finder)で ZIP 圧縮する場合、通常は UTF-8 でエンコードされるため、Windows で解凍しても文字化けすることはほぼありません。しかし、確実に文字化けを防ぎたい場合は、次の点に注意してください。
• ファイル名にWindowsでサポートしていない特殊な文字を使わない
• ファイル名を日本語のみにしない
ファイル名がすべて日本語の場合、まれに文字化けが発生することがあるようです。英数字を少しでも含んでおくと、文字化けしにくくなります。
3.3 Mac OS Xで文字化けしにくいように圧縮する方法(フリーソフトを使う場合)
macOS で利用できる定番のフリーな解凍・圧縮ソフトとして、 The Unarchiver が挙げられます。 The Unarchiver は圧縮時に詳細な設定が可能なため、文字化けのリスクを軽減できます。
■ The Unarchiver
URL:https://apps.apple.com/jp/app/the-unarchiver/id425424353?mt=12
3.4 Mac OS Xで文字化けしにくいように圧縮する方法(ターミナルを使う場合)
macOS のターミナルを使うと、コマンドラインから圧縮することができるほか、より詳細なオプションを指定することができます。
次のように文字コードに「utf-8」を指定すると、文字化けしにくい圧縮ファイルを作ることができます。
zip オプション utf-8 出力ファイル名.zip 入力ファイル/フォルダ名
-r | フォルダを再帰的に圧縮する |
---|---|
-e | パスワードで保護する |
-j | パスを無視して全てのファイルを ZIP ファイルのルートに格納する |
-1 | 圧縮レベルを最小にする(処理が速い) |
-9 | 圧縮レベルを最大にする(処理が遅い) |
4. Linuxでzip文字化けを回避する解凍&圧縮方法
4.1 Linuxでzipを解凍する場合
Linux の「unzip」コマンドで zip ファイルを解凍して文字化けが起こる原因として、特定の文字コード(Shift-JISなど)が使われていることが挙げられます。
その場合、「-O」オプションを使って文字コードを指定すると、回避することができます。
unzip -O 文字コード ファイル名.zip
Shift-JIS の場合、「cp932」と指定します。
unzip -O cp932 sample.zip
4.2 Linuxで文字化けしにくいように圧縮する方法
Linux で他のOSでも文字化けしないようzip圧縮する場合、次のように文字コードに「-T utf-8」オプションを指定すると、文字化けしにくい圧縮ファイルを作ることができます。
zip -r -T utf-8 出力ファイル名.zip 入力ファイル/フォルダ
-r | フォルダを再帰的に圧縮する |
---|---|
-e | パスワードで保護する |
-j | パスを無視して全てのファイルを ZIP ファイルのルートに格納する |
-1 | 圧縮レベルを最小にする(処理が速い) |
-9 | 圧縮レベルを最大にする(処理が遅い) |
5. スマートフォンでの文字化け対策
Android・iOS 共に、標準のファイルマネージャーアプリでほとんどの文字コードに対応できるようになっています。しかし、古いバージョンや特定の文字コード(特にShift_JIS)では、文字化けが発生する可能性があります。
文字化けが発生する場合は、次のようなアプリを使用すると、解消できる可能性があります。
■ Android「RAR」
URL:https://play.google.com/store/apps/details?id=com.rarlab.rar&hl=ja
■ iOS「Documents - ファイルマネージャーとブラウザ」
URL:https://apps.apple.com/jp/app/id364901807
6. まとめ:相手のPC環境に配慮した圧縮ファイル作りを
圧縮ファイルを送信する際に気をつけておきたい点をまとめると、次の通りです。
• 文字コードにUTF-8を指定して圧縮する
• 相手が解凍しやすいように一般的なzip形式で圧縮する
• ファイル名には特殊文字や機種依存文字を使用しないように注意する
• ファイル名が長すぎるとエラーの原因になるので、短めにする
ファイルサイズが大きい場合や相手の環境が分からない場合、クラウドストレージサービスを使う方法もあります。セキュリティに注意しつつ、状況に応じて便利に使い分けてみてくださいね。
当サイトプロエンジニアのコンサルタントが厳選したおすすめのフリーランス案件特集はこちら
特集ページから案件への応募も可能です!
実際にフリーランスエンジニアとして活躍されている方のインタビューはこちら