レンタルサーバーをXREA+からCORESERVERに移行する場合、MySQLのバックアップ(ダンプデータ)をそのまま移行すると文字化けするため、その解決方法をまとめておきます。
MySQLのバージョン違いによる、デフォルトの文字セットの違い。
MySQL 4.1以降ではクライアント側の文字コードが(通常)latin1であるため、データベース側の文字コードとの違いにより、日本語での文字化けが起こります。
MySQLをソースからインストールし直すことで解決できますが、レンタルサーバーでは不可能なため、他の解決方法をとる必要があります。
P_BLOG実行時に、クライアントとサーバー双方の文字コードをUTF-8に設定するように、プログラムを修正します。具体的には、
mysql_connect
関数でデータベースに接続した直後に、次の一行を追加しします。
mysql_set_charset("utf8");
mysql_connect 関数を使っている以下の4ヵ所に追加します。(他のサーバーからの移行であれば fnc_base.inc.php だけでもOK)
ブラウザからP_BLOGのサイト管理にログインし、「環境設定」のページで以下のように設定して保存します。
CORESERVERの管理画面にログインし、「データベース」のページで、MySQLのデータベースを作成します。このとき文字コードはUNICODEを選択しておきます。
phpMyAdminにログインし、旧サーバーのDBからエクスポートしたデータを、新しいDBにインポートします。インポートするファイルの文字セットは ujis を指定します。(旧DBの文字コードがEUC-JPの場合)
最後に以下の内容を確認します。
以上問題が無ければ、P_BLOGでも文字化け無く表示できるはずです。
AND OR
背景
レンタルサーバーをXREA+からCORESERVERに移行する場合、MySQLのバックアップ(ダンプデータ)をそのまま移行すると文字化けするため、その解決方法をまとめておきます。
文字化けの要因
MySQLのバージョン違いによる、デフォルトの文字セットの違い。
MySQL 4.1以降ではクライアント側の文字コードが(通常)latin1であるため、データベース側の文字コードとの違いにより、日本語での文字化けが起こります。
MySQLをソースからインストールし直すことで解決できますが、レンタルサーバーでは不可能なため、他の解決方法をとる必要があります。
文字化け解決方法
P_BLOGプログラムの修正
P_BLOG実行時に、クライアントとサーバー双方の文字コードをUTF-8に設定するように、プログラムを修正します。具体的には、
関数でデータベースに接続した直後に、次の一行を追加しします。
mysql_connect 関数を使っている以下の4ヵ所に追加します。(他のサーバーからの移行であれば fnc_base.inc.php だけでもOK)
P_BLOG環境設定
ブラウザからP_BLOGのサイト管理にログインし、「環境設定」のページで以下のように設定して保存します。
MySQLデータベースの作成
CORESERVERの管理画面にログインし、「データベース」のページで、MySQLのデータベースを作成します。このとき文字コードはUNICODEを選択しておきます。
SQLデータのインポート
phpMyAdminにログインし、旧サーバーのDBからエクスポートしたデータを、新しいDBにインポートします。インポートするファイルの文字セットは ujis を指定します。(旧DBの文字コードがEUC-JPの場合)
最後に以下の内容を確認します。
以上問題が無ければ、P_BLOGでも文字化け無く表示できるはずです。
その他の文字化け解決方法