ホスティングで CPI を利用しています。
php の関数で、mysql_client_encoding() を実行すると "ujis" と返ってきます。
動作確認用の CentOS5 が手元にあるのですが、この環境で実行すると"latin1" が返ってきます。
CentOS側で "ujis" と返ってくる(CPI と同じ環境にする)ようにするにはどうしたら良いですか?
試してみましたが、変化ありませんでした。
■変更前
mysql> show variables like 'character_set%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+
■変更後
+--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | ujis | | character_set_connection | ujis | | character_set_database | ujis | | character_set_filesystem | binary | | character_set_results | ujis | | character_set_server | ujis | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+
httpd, mysql を再起動するが、"latin1" のままです。(>_<)
my.cnf(もしくはmy.ini)に以下の設定を追加してみたらどうでしょう?
[mysqld] default-character-set = ujis skip-character-set-client-handshake [client] default-character-set = ujis
うーん、、、変わらないですねぇ…。
(具体的な指示で分かりやすかったです。感謝)
mysql_set_charset関数で設定できます。
echo mysql_client_encoding();
mysql_set_charset(utf8);
echo mysql_client_encoding();
mysql_set_charset(ujis);
echo mysql_client_encoding();
http://php.net/manual/ja/function.mysql-set-charset.php
http://labs.uechoco.com/blog/2007/09/mysql_set_charset_vs_set_na...
以下のエラーとなってしまいました。
MySQLのバージョンアップも検討してみます。
ちなみに当方の環境は 5.0.22 でした。
OSの文字コードを変更するということでしょうか?