早速ですが、
新しい環境にXAMPをインストールしてPHPの開発環境をたてました。
その時に起きた流れとPHPの文字化け解決に向けた確認ポイントについてまとめておきます。
あっ、あとタイトルに”10のこと”なんて書いてありますが、そんなにないです。うそですね。
どうして文字化けが起きた?
元々、持ち運べるってことでノートPCにXAMP入れてPHPで開発していたんですけど最近はおうちでデスクトップPCに向かって開発する機会が増えてきたので”よしっ、デスクトップにも入れてやるか!!”ってな具合でXAMPをデスクトップPCへ。
ApacheのRoot変えてたので「設定するのメンドクセー」ってことで
ノートPCと同じようなディレクトリ構成作って、ソースだとかphpMyAdminだとかはそのままひょいこノート→デスクトップへコピーしました。
そんな感じで、MySQLのデータベースもエクスポートしてインポートして
「ハイッ。完成。」だと思ったんですが、
「あれっ?なんで"???????"って表示されてるのおおおおぉぉぉぉ」
確認したこと
さて、本題ですがここから僕が確認したことをタイムラインに沿ってご紹介。
1.DBのデータ確認
DBにはどんなデータが入ってるか確認しました。
すると、特に問題なく日本語やアルファベット表記のデータが表示されていました。問題なし。
2.PHPファイルの確認
phpファイル自体の文字コードとphpコード内の文字コード指定部分とかを確認しました。
元々ノートPCでは文字化けなんてことは起こっていなかったので、これは違うだろうなぁと思いつつも確認しましたが、案の定問題なし。
3.テンプレートファイルの確認
smartyを利用してview部分を出力していたので一応確認。問題なし。
・・・
ここら辺で、そもそもこの画面からデータ登録したらどうなるの?と思い、
登録してみると。。。
なんと、ちゃんと表示されているではありませんか!!!
一応DBも確認してみると。。。
ん??何このアラビア語?いやいやいや(汗
正直、このままでも画面にはちゃんと表示されているのでいいかなと思いましたが、もう少し頑張らなければと調査続行。
4.PHPの設定ファイルの確認
今度はphpの設定ファイル「php.ini」を確認しました。
ノートPCとdiffとってみましたが、問題なし。
5.MySQLの設定ファイルの確認
お次はMySQLの設定ファイルも確認しておきました。
再度ノートPCの「my.ini」と比較すると、
おおぉ、ここでUTF-8の指定してるやん!!という世紀の発見をしました。
デスクトップのmy.iniにその部分をマージしてあげて、
もう一度Web画面からデータ登録すると画面上はOK!
ではDBはというと、
ん??何このアラビア(ry
せっかく原因を突き詰めた!!!(超大袈裟)
と思ったのですが、再度調査を始めようとした時、
何か忘れている、はて、なんだ???
はい、皆さんお気づきの方もいるかと思いますが、
そうです。
再起動です。MySQLの再起動が漏れていましたねー。
MySQLを再起動して、Wwb画面で確認して、お次はDBと確認すると
「はい、素敵」ちゃんと登録されていました。
はぁ。まっじでこういうニアミスなくしたい。
ありがとうございました。ははは。