読者です 読者をやめる 読者になる 読者になる

さくらサーバーの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がいいわ。