文字化けのはなし

TAGS

文字化けのはなし カバーイメージ
  1. 1. 背景
  2. 2. 原因
  3. 3. 確認
  4. 4. 解決
  5. 5. その他

先日、ひさしぶりにShift-JISの文字化けに躓きまして
改めていろいろ調べてみました。

背景

今回の現象は、常時SSL化の対応の際に発生して、
従来の『http』での閲覧では問題なかったのですが
『https』で文字化けが発生してしまいました。

原因

文字化けは
・ファイル自体がどの文字コードで作成・保存されているか
・charsetの宣言はどうなっているか(<meta charset="utf-8"> ← こんなやつ)
このあたり確認すれば大抵解消できると思います。

ところが、今回の原因はこちら以外に
レスポンスヘッダの文字コードでの指定が必要なケースでした。

確認

Chrome DevToolsで
Networkタブ > Response headers > content-typeを確認すると
『http』では、charset=Shift-JISの表記が見受けられるが
『https』では、それが見当たりませんでした。

解決

Apacheなどのサーバ側で設定(conf)も可能でしょうが
.htaccessでも可能です。以下の一文を記入することで期待通りになるかと思います。

AddType "text/html; charset=Shift_JIS" html

その他

その他、有名なのが
波ダッシュ(〜&#12316;)と、全角チルダ(~&#65374;
このあたりで懸念がある場合は、実体参照してしまうのが手っ取り早いですかね

個人的にはNoto Fontsの由来が好きですね。
no more tofu って…

もとい、no more 文字化けですね。

TAGS

RECOMMEND