DreamHostでXOOPSその後
XOOPS Cube Legacy 2.1.2で使うMySQLの文字コード照合順序は、eucjpms_japanese_ciではなく、ujis_japanese_ciが正しいみたい。各テーブルはeucjpmsで作られてしまっているから、ujisに変える必要がある。それでいろいろと調べて以下のようにしてみた。
% mysqldump -u user名 -p -h host名 --default-character-set=binary DB名 > dump.sql % sed 's/DEFAULT CHARSET=eucjpms/DEFAULT CHARSET=ujis/g' dump.sql > dump_ujis.sql % mysql -u user名 -p -h host名 < dump_ujis.sql
これでOKかな?
XOOPS 2.0.16a JPの方は文字化け自体解決していなかった。文字化けというか、DB内の日本語の値が全く入っていなかったりする。
XOOPS 2.0.16a JPはPHP5にも対応しているとのことだが、確実に動く方ということでPHP4に変更した。DreamHostでは、そのドメインでPHP4を使うかPHP5を使うかを選択できる。
MySQL5だと以下の対応が必要のようだ。
class/database/mysqldatabase.phpの connectメソッドの最後の箇所、trueを返却する前に以下の1行を追加する。
mysql_query("SET NAMES ujis", $this->conn);
これで文字化けしなくなった。