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