Xoops/文字化け

MySQL4.1以上で文字化けする対処

環境

概要

php.iniの設定もEUC-JP,my.cnfもujisになっているが何故か文字化けする?
結構悩みましたよ。
結局は、MySQL4.1移行に追加された文字変換機能のせいでPHPからPOSTする日本語
utf-8になっているので、文字化けを起すみたいです。
対処方を発見したので、メモしておきます。

対処法

対処方としては、Xoopsの設定ファイルを直接編集して、MySQLに送る文字を無理やり変換するやり方です。
88行目の辺に下記の文字列を追加する。
mysql_query("SET NAMES ujis;", $this->conn);

$ vi class/database/mysqldatabase.php
------------------編集個所----------------------
83		if($selectdb != false){
84			if (!mysql_select_db(XOOPS_DB_NAME)) {
85				$this->logger->addQuery('', $this->error(), $this->errno());
86				return false;
87			}
88		mysql_query("SET NAMES ujis;", $this->conn);
89		}
90		return true;
91	}
------------------編集個所----------------------

これで文字化けしなくなるはずです。