Archive for the ‘XOOPS’ Category

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

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

DreamHostでXOOPS

Thursday, November 29th, 2007

今度はXOOPSをインストールしてみた。

XOOPS Cube Legacy 2.1.2とXOOPS 2.0.16a JPとどっちがよいのかよくわからんので、どっちも入れてみた。

そのまま入れるとどっちも文字化け。

MySQL の文字セットはUTF-8で、変えられそうもない。
問題は、MySQLの文字コード照合順序(Collation) 。

XOOPS Cube Legacy 2.1.2はeucjpms_japanese_ciにすれば解決したのだけど、 XOOPS 2.0.16a JPはeucjpms_japanese_ciでは駄目でujis_japanese_ciにしたら解決した。

※この情報は間違っています。その後の情報を参照して下さい。

あまり調べないで適当にやったので、これで本当によいのかどうかは怪しいけど、今のところちゃんと日本語で表示できてます。

XOOPS Cube Legacy 2.1.2とXOOPS 2.0.16a JPの文字コードの扱いがどう違うのか。eucjpms_japanese_ciとujis_japanese_ciがどう違うのか。

誰か詳しい人教えて。