Archive for December, 2007

DreamHostでXOOPSその後

Saturday, December 1st, 2007

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);

これで文字化けしなくなった。