先日、XAMPPを使って家のPCにデバッグ環境を作ったのは良いのだけれど、Nucleusをインストールするとどうも文字化けする。
NucleusはUTF8。データベースをみると、特殊記号が混ざったような状態。
これは、XREAの新しいサーバに移行したときも起こったのだけれど、こちらはどうにも直らない。
サーバにアップロードしてあるサイトのファイルと、データベースの内容を書き戻しても、だめ。
具体的には、phpMyAdminで見るデータベースの内容が文字化け。投稿しても文字化けという状態。
これ、いくつか問題点があった部分を列挙。
まず、デフォルトのデータベースの文字コードについて。何も設定していない場合、データベースの照合順は、「latin1_general_ci」となり、文字コードは「latain1」になる。
このまま使うと、見事に文字化けが起こるので、MySQLの設定で、デフォルトの照合順を「utf8_general_ci」,文字コードを「utf8」に変更する。
そしてNucleus本体側。/nucleus/libs/globalfunctions.phpファイルのデータベースの接続直後に
mysql_query("SET NAMES utf8");
を記載。でもこれ、最新版のNucleusには回避策が入っているように見える。
そんな感じでNetの情報を集めて対策してみたのだけれど、どうしても文字化けが直らない。
何でかなあとphpMyAdminを眺めていたら、テーブルがすべて「latin1_general_ci」のままだったことに気がつく。
デフォルトの照合順を「utf8_general_ci」に変更しても、すでに作成されたテーブルの照合順は変更されるわけじゃないわな。
phpMyAdminでテーブルを選び、「操作」タブから照合順を「utf8_general_ci」に変更。これでやっと文字化け対策は完了。
わかってみれば単純なことなんだよな。
コメント