|
XOOPSのソース内でSET NAMES ujisを指定しないためUTF8のcharacter_setであるMySQL5.0.xで文字化けする。 mysql>show variables like 'char%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 上記の環境では確実に文字化けする。 対処法は以下に記しておきます。 XOOPS_ROOT_Directory/class/database/mysqldatabase.phpというファイルの // MySQL>=4.1above///////////////////////////////
mysql_query("SET NAMES ujis", $this->conn);
////////////////////////////////////////////////
mysqldatabase.phpの77行目から92行目はこんな感じになっています。 if (!$this->conn) {
$this->logger->addQuery('', $this->error(), $this->errno());
return false;
}
if($selectdb != false){
if (!mysql_select_db(XOOPS_DB_NAME)) {
$this->logger->addQuery('', $this->error(), $this->errno());
return false;
}
}
// MySQL>=4.1above///////////////////////////////
mysql_query("SET NAMES ujis", $this->conn);
////////////////////////////////////////////////
return true;
}
|