ZIPファイルを解凍したときや、古いファイルサーバーからデータを移行した際に、「フォルダ名だけが文字化けして、中に入っているファイル名は正常に表示される」という奇妙な現象に遭遇することがあります。
これは、ファイル名とフォルダ名が、コンピュータ上で異なる取り扱いをされているわけではなく、ファイルシステムや圧縮・解凍ソフトの処理のタイミングと対象に違いがあるために起こる現象です。
原因1:ZIP圧縮・解凍時の処理の違い
ZIPファイル内でこの現象が起こる最大の原因は、圧縮・解凍ソフトが持つ「文字コードの自動判別機能」の働き方にあります。
多くの解凍ソフトは、文字化けを防ぐために、圧縮ファイル内のデータを見てどの文字コード(Shift JISやUTF-8など)が使われているかを推測します。
-
フォルダ名 (ディレクトリ): フォルダ名は単なる「名前」の情報であり、内容物がありません。ソフトがこの名前単独で文字コードを判別しようとすると、誤ったエンコーディングだと判断し、文字化けしやすいです。
-
ファイル名 (ファイル): ファイル名はフォルダ名と同様にヘッダー情報として格納されていますが、解凍ソフトによっては、ファイルの中身(データ)の一部も参考にして、文字コードをより正確に推測しようとする場合があります。
特に、フォルダ名が古く互換性の低いShift JISで、ファイルの中身が現代的なUTF-8などのテキストデータだった場合、フォルダ名だけが文字化けする、という状況が起こりえます。
原因2:ファイルシステム(OS)の処理の違い
ごく稀に、ファイルサーバーやクラウドストレージからファイルをダウンロードした際に、この現象が発生することがあります。これは、OSやファイルシステムの管理方法に起因します。
-
互換性維持のロジック: ファイルシステム(NTFSやAPFSなど)は、過去の互換性を維持するために、フォルダとファイルを異なるタイミングでスキャンしたり、処理したりすることがあります。
-
ファイル名よりフォルダ名を優先: 特に、古いシステムから新しいシステムへ移行する際、フォルダ構造(階層)を先に構築しようとして、フォルダ名だけが古い文字コードのまま変換されずに残ってしまうことがあります。
しかし、現代の標準的なOS環境(Windows 10/11、macOS)やファイルサーバー(SMB 2.0/3.0)では、ファイル名とフォルダ名を統一されたUTF-8で処理するため、この現象はほとんど見られなくなっています。
対策:文字化けを防ぐための確実な方法
この現象を回避し、ファイル名・フォルダ名両方の文字化けを防ぐには、以下の対策が最も有効です。