2007年02月08日
XOOPSを引越ししたら文字化け
うまくいったように思ったのですが、すっかり文字化けしてました。
まず、新サーバのデータベースはEUCコードで作ること。
どの文字コードで作ったかは、MySQLのコマンドで見れます。
# mysql
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 90473 to server version: 4.1.20Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> show create database データベース名;
+--------------+-----------------------------------------------------------------------+
| Database | Create Database |
+--------------+-----------------------------------------------------------------------+
| xxxxxxxxxxx | CREATE DATABASE `xxxxxxxxxxx` /*!40100 DEFAULT CHARACTER SET ujis */ |
+--------------+-----------------------------------------------------------------------+
1 row in set (0.00 sec)
ujisと表示されれば、EUCコードです。何故か、ujisをいう表記です。
この状態でも、文字化けは解決しませんでした。
旧サーバのphpMyAdminはEUCコードをサポートしていて、新サーバはutf-8だけでした。なので、新サーバにインポートする際、utf-8の画面からインポートするわけで、どうも、これが原因なのか。。。
あれこれ、調べていくうちに、こういうページを見つけた。
XOOPSインストール後の文字化け - XREA&CORE SUPPORT BOARD
どこかのサーバ屋さんのサポートフォーラムらしい。
ここに、/class/database/mysqldatabase.php を修正したら、文字化けが直ったとある。
対応策は、236行目付近の$result =& mysql_query($sql, $this->conn); の上に
mysql_query("SET CHARACTER SET ujis", $this->conn);
を追加すること。
phpMyAdminはutf-8で、XOOPSはEUCコードなので、クエリーで読み込む際にEUCコードの変更するといった対処法はピッタリかもしれない。
早速同じように修正してアップロード。
見事に文字化けから開放された。
管理画面からお知らせを投稿してみる。新たに追加されたデータも正常に表示される。
これにて一件落着。
2007年02月08日 23:52 | XOOPS
トラックバック
このエントリーのトラックバックURL:



