サーバ管理

picoで~(波形)を投稿すると文字化けする

xoopsのサーバ移設ではずいぶんと泣かされた。
正確に言うと、mysqlの環境が変わっただけで、簡単に文字化けやエラーに見舞われる。

そんななかで、今回は「picoで~(波形)を投稿すると文字化けする」ことの対処法について。

同じcentos5同士でサイトを移動したのに、picoモジュールで~(波形)を投稿すると文字化けする事態が発生した。ともにmysql5.0の同じバージョンなのになぜ???

いろいろ調べてみると、dbの文字セットと生成されるtableの文字コードがそれぞれ異なっていたのが原因だった。

解決策は、
1. SHOW VARIABLES LIKE “char%” で文字セットを調べてみる。
2. character_set_database ujis となっていたら、ALTER DATABASEでutf8に変更する。
3. 既存のpicoのコンテンツテーブルなどは
ALTER TABLE ***_pico_contents CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
で文字コードを変更する。

これで、再度 ~ を投稿してみたところ文字化けしなくなった。
これはほかの投稿用モジュールでも共通して言えるようである。

んんん、毎度のことながらdbの文字セットは奥深い。

07 2月 2010