Search
Globle Translator





人気ブログランキングへ


random image random image 2009_01_1822_57_52 random image random image random image dvc00036 dvc00031 random image random image p1000103 random image theme random image random image
カレンダー
2012年1月
« 12月    
 1
2345678
9101112131415
16171819202122
23242526272829
3031  
アーカイブ
カテゴリー

xoopsのUTF8化で、phpmyadminでデータベース参照時の文字化け回避

ちょっと長いタイトルだが、回避できたのでメモ。xoops本体のUTF-8化は比較的簡単だが、このままインストールするとmyphpadminでデータベースを見ると文字化けしてる。このデーターをダンプしてみても、文字コードを変更してしても文字化けが治らないので、バックアップ体制を考えると不安でたまらなかった。以下にこれの回避方法と環境をメモしておく。忘れると大変だから。

【状況】

インストール後、xoopsを開くが文字化けなし。UTF-8表示が成功しているように見えたが、myphpadminからデータベース内を見てみると日本語が判別不能な文字化けを起こしている。xoopsの管理画面から設定画面で日本語を入力してみるが、xoopsではきちんと表示されるもの、phpmyadminでは文字化け発生。

【状況回避】

.htaccessをフォルダに置く

php_value output_handler none
php_value default_charset UTF-8
php_value mbstring.language uni
php_value mbstring.internal_encoding UTF-8
php_value mbstring.http_input auto

php_value mbstring.http_output pass
php_flag mbstring.encoding_translation On
php_value mbstring.detect_order auto
php_value mbstring.substitute_character none

んで、xoopsのフォルダにある /class/database/mysqldatabase.php に変更を加える。

236 244行目付近の$result =& mysql_query($sql, $this->conn); $result = mysql_query($sql, $this->conn);の上部に、

mysql_query(“SET CHARACTER SET UTF8″, $this->conn);

を追加する。

これで修正してみたら、バッチリ。管理画面から日本語を入力してみると、xoops側もphpmyadmin側も文字化けなし。ただ、通常インストール後にこのパッチを当てたので、一部日本語が文字化けしているが、管理画面かmyphpadminから修正すれば文字化けしないで表示される。

ひょっとしたら、パッチを当てた状態でインストールすれば、まったく文字化けのない状態でインストールできるかもしれない。

【追記】

mysql_query(“SET CHARACTER SET UTF8″, $this->conn);

この文字コード指定だが、UTF-8,ja-UTF8,utfなどをそれぞれ実験してみたが、myphpadminの文字列が文字化けしないのはUTF8だけだった。普通はUTF-8だと思うのだが、なにかしら不安は残る。まだ検証の余地はありそう。

One Response to “xoopsのUTF8化で、phpmyadminでデータベース参照時の文字化け回避”

  • XXX:

    .htaccessはどこのフォルダに置くのですか?
    とりあえずrootに置くとページの表示がされなくなります。

Leave a Reply