ぶちの備忘録

3日経つと忘れる内容をまとめています。

ダウンロードしたファイルの文字化け

投稿日:2022-05-26
サイトからダウンロードできるようにしたファイル名が文字化けしている。
生成したzipファイルの中のファイル名が文字化けしている。

その辺りについての覚え書きです。

ダウンロードしたファイルの文字化けについて

IEの考慮が不要となり、Windows10になったことでダウンロードしたファイル名の文字化けについてはほとんど発生しなくなっていると思っています。

簡単にまとめると、下記を行えば文字化けにはならないはずです。
1、UTF-8でファイル名をURLエンコードする。
半角英数のみのファイル名であれば不要ですが、記号や日本語などが入る場合は必要です。

2、レスポンスヘッダーに1のファイル名を指定する
「Content-Disposition」にファイル名を指定してください。
Content-Disposition: attachment; filename=[1でエンコードしたファイル名]

ダウンロードしたzipファイル内のファイル名の文字化け

これについては・・・
「すべてのOS・すべての解凍ソフトで解消可能な対応方法はありません!」

いきなり断言してしまいましたが・・・

とりあえず一般的な方針としては、
「zip内のファイル名はUTF-8として処理するようにしましょう」
ということになると思います。

それにより、OS標準の解凍ソフトでは文字化けせずに解凍がおこなえます。

文字化けが発生するのは、Windowsでzipファイルを作る場合にファイル名が「Shift-JIS」で扱われていたことが原因となります。
Windows10の標準の解凍ソフトでは対応が行われており、「UTF-8」のファイル名の場合は文字化けせずに解凍できます。

一般的な方針で挙げた対応を行った場合でも、解凍ソフトの設定・未対応により文字化けが発生する可能性があります。
一例としては、Lhaplusでは「UTF-8」のファイル名の対応が行われていないため文字化けが発生するようです。