mysqldump以外に便利でかつ、下記の条件をクリアできるもの(phpコード?)があれば教えてください。
現在、oscommerceを mysql5.0.45(utf)の環境で動作させてますが、
phpmyadminだとプログラムから入れた文字が化けてしまっています。
ちなみにoscommerce側でのカタログ画面、管理画面では文字化けはありません。
これはmysql5の問題だとか、いろいろ調べ、
my.confやら、phpmyadminのconfigも修正しましたが、
結局解決しませんでした。
通常使用時は管理画面からデータ修正できる為不便ではありませんが、
どうやらmysqldumpコマンドからのバックアップも文字化けしているようで、
バックアップの対策を検討しています。
これだという解決策がなければ、
oscommerce管理画面側では文字化けはないので、
バックアップするプログラムを直接書こうかと思っています。
これはmysql5の問題だとか、いろいろ調べ、
my.confやら、phpmyadminのconfigも修正しましたが、
結局解決しませんでした。
なにをどう調べて修正して、結局どうなったのかわからないので、あえて再度修正を試すことを提案します。
また、phpMyAdmin や mysqldump がまともに動かない環境では他の不具合が発生する可能性が
あるため原因までは特定しておくべきと思います。
MySQL4.1 以降の文字化けの原因・対処法はほぼこちらのサイトにまとめられています。
さしあたって確認すべき事項としては、
- my.cnf で skip-character-set-client-handshake オプションを指定しているか
- mysqldump 使用時に default-character-set オプションを指定しているか
あたりでしょうか。
これでも解決しなければ、phpMyAdmin で以下のSQLを実行した結果を出してもらえれば解決に近づくかと思われます。
SHOW VARIABLES LIKE 'char%';
ありがとうございます。もう少しがんばってみようかなと思います。
>SHOW VARIABLES LIKE 'char%';
結果は
Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
でした。
たしかに
character_set_server latin1
がなにかひっかかりますね。
ちなみにサーバは Redhat エンタープライズ5 + plesk8.3です。
my.cnfは、
http://tech.softagency.net/?PHP%2FphpMyAdmin
の通りしてみましたがうまくいかず、今は元に戻しています。
skip-character-set-client-handshake も試してみます。