WEBシステム開発・デザイン制作などすべての作業を一貫してご提供しております。(大阪・東京近辺)

Nginxでサイトを表示すると文字化けが発生するエラーになる

古いサイトを丸ごとApacheサーバーからNginxサーバーに移行する際に、良くあるエラーの一つとして文字コードの違いによる文字化けがあります。

これは、2000年初期の頃あたりに作成されたサイトでは良く、Shift_JISコード、EUCコードが使われていたからです。

また、ガラケー全盛期はShift_JISしか携帯電話が対応していなかったので、パソコンがUTF-8に移行しつつある中、Shift_JISが使われる結果になっていました。

時代は変わり、Shift_JISコードのガラケーは終焉を迎える結果になり、スマートフォンのUTF-8コードにモバイルもやっと変われる時が来たのかもしれません。

そんな時代ではありますが、リニューアルできないサイトやサービスがまだまだあります。

文字コードだけでもさくっと変更したいところですが、確認テストの工数が予算化されないとサイトの規模にもよりますが、まず厳しいのが現実です。

今回は一応設定についてだけメモします。

Nginxでデフォルトの文字コードを設定する方法は

http、server、location内に記載することができます。

基本ドメイン単位で設定した方が、安全と思うのでserver内に記載すればいいと思います。


server {
charset shift-jis;

}

service nginx reload


PHPの場合は、別途設定ファイルの箇所にdefault_charsetを追加すれば文字化けが解消すると思います。

ini_set( ‘default_charset’, ‘SJIS-win’ );