さくらサーバーのMySQLの文字コードは完全にはUTF8にできない
さくらサーバーでmysqlの文字コードを完全にutf8にすることは出来ないっぽい。さくらのコントロールパネルでutf8でDBを作成したときのmysqlの設定は以下のようになる。
% mysql -u user -ppass -h host.db.sakura.ne.jp mysql> use user_db mysql> show variables like 'character_set%'; +--------------------------+----------------------------------+ | Variable_name | Value | +--------------------------+----------------------------------+ | character_set_client | ujis | | character_set_connection | ujis | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | ujis | | character_set_server | ujis | | character_set_system | utf8 | | character_sets_dir | /usr/local/share/mysql/charsets/ | +--------------------------+----------------------------------+ 8 rows in set (0.00 sec)
上記のようにcharacter_set_client等がujisのままなので、php使ってデータをutf8で表示しようとすると文字化けしてしまう。
<?php mysql_set_charset('utf8');
sql発行する際に上記のように書けば文字化けしないけど、いちいち書くのが面倒
mysql> alter database user_db character set utf8;
と実行してもcharacter_set_databaseがutf8になるだけだし、
mysql> set character_set_client = utf8;
とやってもそのコンソール内でのみutf8になるだけだから意味なし。
結局my.cnfを弄らないといけないんだけどrootしか弄れないようになっているので編集不可能。
% cat /usr/local/mysql/5.5/etc/my.cnf [mysql] default-character-set=ujis [mysqldump] default-character-set=ujis [mysqlimport] default-character-set=ujis [mysqlshow] default-character-set=ujis
結局さくらサーバーでMySQLの文字コードを完全にUTF8にすることは出来無さそう。
最近このサイトから契約したFXが好調。やっぱり低予算から始められるFXがいいわ。