CORE SERVERでMySQLの文字化け

作業量を計る為に日報を書くプログラム(PHP+MySQL)を作っていたが、今回のXREAからCORE SERVERの引っ越しで文字化したので調べてみた。
PhpMyAdminから入力した文章は自作PHPで文字化けし、
自作PHPから入力した文章はPhpMyAdminで文字化けしてる状態だ。
最初は明らかに古いPhpMyAdminがインストールされたので怪しいと思ってバージョンアップしてみたが何も変わらない。phpinfoとかも見てみたが大丈夫だ残るはmySQL。telnetでログインして文字コードが何なのか調べてみる事にした。

> cd /
> mysql -u ユーザー名 -p
mysql> SHOW VARIABLES LIKE 'cha%';
+--------------------------+---------------------------------------------------+
| Variable_name            | Value                                             |
+--------------------------+---------------------------------------------------+
| character_set_client     | latin1                                            |
| character_set_connection | latin1                                            |
| character_set_database   | utf8                                              |
| character_set_filesystem | binary                                            |
| character_set_results    | latin1                                            |
| character_set_server     | utf8                                              |
| character_set_system     | utf8                                              |
| character_sets_dir       | /usr/local/mysql-src-5.1.22/share/mysql/charsets/ |
+--------------------------+---------------------------------------------------+

とlatin1(ラテン)が混じっていた。もちろん管理画面からmySQLを作成する時にUNICODEで作成してる。
一体何を考えてlatin1のまま放置してるのか分からないが、共用サーバーではこの設定を変える事は出来ない。
検索するとset names utf8以外の文字化け対策ってのを見つけた。
CORE SERVERはPHP5.2.5なので
mysql_set_charset(‘utf8’);
を追記した。するとバッチリ直った。
ただ、毎回CORE SERVERの為だけにコレを書く必要があるしオープンソースなソフトをインストールする時にややこしい事になりそうだ。

Tags: , ,

トラックバック

“CORE SERVERでMySQLの文字化け” へのレス1件

  1. […] 字化けだらけ。念のためPhpMyAdminでデータを確認したが正常に表示される。 前回のCORE SERVERでMySQLの文字化けと同じ現象だ、MySQL4(XREA)からMySQL5(CORE SERVER)に移転したのが原因だと思われ […]

コメントを書く