Web開発における文字コードの指定において、今はUTF-8がデファクトスタンダードとなりつつあるが、一部のサーバーやサービスにおいては、未だにShift_JISなどの日本語文字コードが使われることがある。
仕事で、auが運営するショッピングモール「Wowma!」に出店することになったのだが、オリジナルのHTMLファイルは全て「Shift_JIS」にしなさい、との指示があった。
普段、SublimeText3をメインエディタとして使っているのだが、このエディタはデフォルトでShift_JISをサポートしていない。編集ができないのだ。
ただ、これについては有名なプラグイン「ConvertToUTF8」で解決する。
プラグインをインストールし、SublimeText3で無事にShift_JISコードのHTMLファイルが完成したのだが、テスト環境であるVagrant上のWebサーバーで確認したところ、ページが文字化けして表示された。
metaタグによる文字コード指定、ファイルの文字コード、どちらも問題はない。
Apacheデフォルト設定による問題
確認したところ、どうやらApacheの設定ファイル(httpd.conf)のデフォルト設定でUTF-8以外の文字コードに対応しないようになっているようだ。
httpd.confファイルを確認しよう。
1 | vim /etc/httpd/conf/httpd.conf |
文字化けの原因となっている該当コードがこれだ。
1 | AddDefaultCharset UTF-8 |
この設定を解除してやる必要があるのでコメントアウトする。
1 | # AddDefaultCharset UTF-8 |
Apache再起動。
1 | systemctl restart httpd |
ページをリロードし再確認すると無事に表示されるようになった。