・環境
Debian GNU/Linux 4.0
XOOPS 2.0.16a
Apache 2.0.55
mysql 5.0
PHP 4.4.2
データベースをUJISで作成しました。
上記の設定でXOOPSの管理画面に遷移したところ、
文字化けが発生してしまいました。
調べたところ、
MySQL 4.1 以降での文字コード自動変換機能
が原因のようでした。
MySQL 4.1 以降での文字コード自動変換機能を無効化にする
方法として、
[skip-character-set-client-handshake]
があるが、これを行うと、
XOOPS用のデータベースとXoopsの間がうまくいかず、
文字化けしてしまいました。
では、どのように対処したかというと、
XOOPSの初期設定をする前に
mysqldatabase.php の
function connect($selectdb = true) の中で、
結果をreturnする前に、
[(mysql_query("SET NAMES 'ujis';", $this->conn); ]
という記述を追加しました。
上記のようにしたところ、
XOOPSの管理画面、XOOPSとDB間の文字化けもなくなりました。
DBをUJISで作成しても、
XOOPSの初期設定を行うと文字コードがUTF-8になってしまうので、
強制的にUJISにする方法にしました。
あまりいい方法ではないのかもしれないが、
これで文字化けは解消できます。