文字化け解消
この間いろいろ手を加えすぎてわけわかんなくなってしまったので、一からやり直し。DBのテーブルは、eucjpms_japanese_ciにするよう統一
文字セットEUCでDBテーブルは作成するとする。
ローカル(XAMPP forMacOS X 0.7.2):MySQL クライアント: 5.0.51a
レンタルサーバー(heteml):MySQL クライアント: 4.0.25
①レンタルサーバーのxoopsデータ、DBデータを消去。
②レンタルサーバーのDBを新しく作成。
MySQL の接続照合順序 eucjpms_japanese_ci にして、新規DB作成。
③XOOPSをレンタルサーバーへインストール。接頭語を、ローカル環境にあわせておく。
④ローカル環境の管理メニューから、テーマをデフォルト、各モジュールを非アクティブにする。
ローカル環境DBでオーバーヘッドがないかを確認。オーバーヘッドあるテーブルは、最適化しておく。
上記確認後、phpmyadminでエクスポート。
移植するデータベースを選択し、エクスポートタブへ移動。
オプション SQL互換モード → MYSQL40
構造 レ DROP TABLE / DROP VIEWを追加 (チェック)
IF NOT EXISTSを追加(チェックを外す)
データ 長居INSERT文を作成する(チェックを外す)
ファイルに保存する
レnon(チェック)
⑤エクスポートされた、「.sql」ファイルをエディタソフトで開く。
UTF8のファイルになっているため、EUCで保存し直し。
今回の文字化けは、このUTF8ファイルで吐き出されていたことが原因。ここが肝でした!
⑥ローカル環境のXOOPSファイルをレンタルサーバーにFTPソフトでアップロード。各モジュール「xoops_trust_path」もアップロード
「mainfile.php」も「xoops_trust_path」のパスを記入
⑦レンタルサーバー heteml のコントロールパネル/データベースより、phpmyadminへアクセスし、新設したDBを選択し、
インポートタブへ移動。
インポートするファイルで、先ほど、EUCで保存しなおした、「.sql」ファイルを選択し、実行
エンコード レnon(チェック)
⑧DBインポートが一回で成功しないので、何度か実行してみる。
DB読み込み失敗したりしてやり直す場合は、今のテーブルでデータが入っているものを、一度空にしてから
読み込みする。
以上の、手順で、文字化けは解消され、ローカル環境で構築したXOOPSがきちんとレンタルサーバーでも移築されました。
余談ですが、ローカル環境やレンタルサーバー環境のDBで、下記SQLを実行してみてその結果を比較すると、
SHOW VARIABLES LIKE 'char%';
<ローカル環境(XAMPP for Mac OS X 0.7.2)>
character_set_client utf8
character_set_connection ujis
character_set_database eucjpms
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir /Applications/xampp/xamppfiles/share/mysql/charset...<レンタルサーバー(heteml)>
character_set ujis
character_sets latin1 big5 czech euc_kr gb2312 gbk latin1_de sjis...
というわけで、ローカル環境の、文字環境はこれでいいのかという疑問は残るのですが、とりあえず、この状態でいくことにします。