テキストファイルをダウンロードするとファイルが文字化けするのを解決した話

WordPressで運用してしているサイトに、テキストファイルをアップロードし、そのファイルへのリンクをクリックしてダウンロードすると文字化けしてしまいました。

aタグの設定でなんとかならないかと、以下のようにしたところ、WindowsのChromeでの文字化けは解消したけれど、iPhoneだとやはり文字化けしてしまう。

<a href="xxxxxxxx" download="●●.txt" charset="utf-8" hreflang="ja">ダウンロード</a>

そこで、Chromeのディベロッパーツールでヘッダー情報を確認したところ、charset=iso-8859-1 となっていることに気づきました。なるほど、ダウンロードしたテキストファイルの文字コードがiso-8859-1だと認識されるので、文字化けするのも無理もない話ですね。

で、「charset=iso-8859-1」はいったい誰がセットしているのかというと、おそらくhttpサーバに違いないということで、.htaccessに以下のように追記してみました。

<Files ~ "\.txt$">
AddType "text/plain; charset=utf-8" .txt
</Files>

つまり、拡張子が「.txt」のファイルの場合、強制的にキャラクターセットを「utf-8」とセットするようにしたわけです。

設定後、テキストファイルをダウンロードすると、めでたく文字化けが解消しました!

シェアする

  • このエントリーをはてなブックマークに追加