いつまで経ってもわからない、WEBってやつは・・・(´・ω・`)

【 htaccess 】サーバー変更してサイトが文字化けした場合はAddDefaultCharsetかも(`・ω・´)ゞ

最近、無限にお腹が減るゆでです(´・ω・`)<ハラヘター

さて、色々な原因のある文字化けですが、最近立て続けに「AddDefaultCharset」で直ったケースがありましたので、メモメモφ(*’д’* )。

サイトが文字化けする原因

ざっくりというと下記でしょうか。

  • 宣言文字コード(metaのcharsetやxmlのencoding) ← ファイル内記載
  • ファイルの保存形式の文字コード ← ファイル自体
  • サーバのResponse Headersの文字コード(Content-Type) ← サーバ設定
  • 処理されたデータの文字コード(mb_なんたらとかjcodeとか) ← プログラム内

(´・ω・`)<うわーざっくりw

今回は上記の3つ目、サーバ(Apache)での設定が原因の場合のメモです。

Apacheサーバの設定は「httpd.conf」でされていると思うのですが、いかんせん詳しくなく、(´・ω・`)<デーモンなにそれサーモンの仲間なの? という感じなので、「.htaccess」にて対応のメモです。

AddDefaultCharsetの設定確認方法

http://web-sniffer.net/などのサイトでレスポンスヘッダを確認できます。

※Chromeブラウザでは、デベロッパーツールの下記で確認できます(Firefoxもきっとできる!)

adddefaultcharset_img02

本当にこれかなぁ?と間違えた設定の場合で確認してみた

adddefaultcharset_img03

※指定なしは「off」です。古いサーバなど、たまに「none」とかなってるサーバがあるのでその場合は正しい指定に直しましょう(*´ω`*)笑

htaccessに記載する

utf-8を指定する場合は

AddDefaultCharset UTF-8

と記載すればOKです。逆に、特に指定しない場合は

AddDefaultCharset Off

でOKです(noneじゃないです(^Д^))

※郵便番号自動取得(ajaxzip3)とかで取得した住所が文字化けてるー!とかの場合もこちらの文字コード設定が原因の場合があるので注意(*´ω`*)