knowledge base

マークアップ/フロントエンドエンジニアのWEB制作における備忘録です。平日はWEB屋、休日は社会人劇団の主宰・劇作家をしています。

Vagrantで文字化けする

Shift-JIS / EUC-JPの場合

Apacheにてデフォルトの文字コードUTF-8を指定していることが原因なので、httpd.confにて下記をコメントアウト

AddDefaultCharset UTF-8

UTF-8なのに文字化けする場合

ロケールが原因

先ほどは日本語専用の文字コードの場合でしたが、Apacheがデフォルトの文字コードにしているUTF-8であるにも関わらず文字化けしてしまうことがあります。

正確に申しますと文字化けというよりかは、コメント中に和文が入っているとそれ以降をブラウザが正しく解釈できないようです。

Boxにもよりますが、多くの場合デフォルトのロケールは英語(US)になっているそうで、これによりファイルの文字コードUTF-8だとしても正しく解釈できなくなってしまうそうです。

日本語のロケールがないことが原因のため、まず日本語パッケージをインストールしたのち、ロケールを追加します。

yum -y groupinstall "Japanese Support"
localedef -f UTF-8 -i ja_JP ja_JP.utf8

最後に、ロケールの設定ファイル(/etc/sysconfig/i18n)を編集して、システムのロケールを日本語に変更。

■変更前
LANG="en_US.UTF-8"
■変更後
LANG="ja_JP.UTF-8"