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」とセットするようにしたわけです。
設定後、テキストファイルをダウンロードすると、めでたく文字化けが解消しました!
ホームページの制作(デザイン・コーディング・プログラミング)に加え、ネットショップの販売促進に関するアドバイスも致します。 20年以上に渡って実際にネットショップを運営した経験を生かし、聞きかじりではない実績を伴ったノウハウを、自分の言葉でお伝えいたします。 プログラミングの経験は30年以上。HTML、CSS、JavaScript、Vue、NuxtJS、Node.js、MySQL、MongoDB、Elasticsearch、WordPress、Docker、PHPなど、幅広く対応します。