XOOPS Cube で文字化け(クエスチョン'?')になるバグがあるのでイロイロと調整。
ちなみにXOOPS Cube のバージョンは2.1.2。
http://www.peak.ne.jp/support/xoops/
↑からja_utf8-for_CubeLegacy2.x.x.tar.gzをダウンロードして、ZELDAとかtar -zxvf ja_utf8-*とかで解凍して適度なところに置かなきゃいけないですよ。
1.インストール後クエスチョンがXOOPSででる場合は一度データベースを削除しなくちゃいけない
mysql > drop database XOOPS; (←データベースの名前)
2./etc/my.cnfで文字コードをイロイロと設定
ujis → utf8に
例) default-character-set = utf8
こんな感じ↓
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
default-character-set = utf8
[mysql.server]
user=mysql
basedir=/var/lib
[mysqld_safe]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
default-character-set=utf8
[mysql]
default-character-set = utf8
[mysqldump]
default-character-set = utf8
もちろん、設定した後はmysqlを再起動。
$ /etc/rc.d/init.d/mysqld restart
3.データベースを作成してutf8にする
mysql > create database XOOPS(DB名);
mysql > alter database XOOPS(DB名) character set utf8;
4.設定したURLに再度アクセスしても無駄なので、設定したURL/install/にアクセス。
→ "install"フォルダは削除してると思うのでアップロードしなおす。
インストール作業はすでにmainfile.phpに必要な情報が書き込まれてるので問題ナッシング(楽ちん)。
[レンタルサーバの場合でかつ文字コードがEUC-JPの縛りを受けている場合] /class/database/mysqldatbase.phpに以下を追加してみる。[sb.xrea.com]
mysql_query("SET CHARACTER SET ujis", $this->conn);
コードの位置は244行目くらいの所。
こんな感じ↓
function &queryF($sql, $limit=0, $start=0)
{
if ( !empty($limit) ) {
if (empty($start)) {
$start = 0;
}
$sql = $sql. ' LIMIT '.(int)$start.', '.(int)$limit;
}
// 2007/11/18 追加
mysql_query("SET CHARACTER SET ujis", $this->conn);
$result = mysql_query($sql, $this->conn);
if ( $result ) {
$this->logger->addQuery($sql);
return $result;
} else {
$this->logger->addQuery($sql, $this->error(), $this->errno());
$ret = false;
return $ret;
}
}