MYSQLでの文字化け
php(utf-8)を使ってmysqlで簡単なサイトを作ってみましたが,
日本語をフォームから入力して、表示するとき、ブラウザではまったく問題ないのですが、
phpMYadminでデータベースを開くとの日本語部分が文字化けして読めません。
ローカルでは問題ないので、サーバーの問題かとおもい、
他のサーバー(ロリポップ)にphpとsqlをテストでコピーしてみましたら大丈夫でした。
何かの設定かと思い、
mysql> SHOW VARIABLES LIKE 'char%';でチェックし比べてみたところ
正常(ローカル、ロリポップともに)のものは
character set client utf8
character set connection utf8
character set database utf8
なのに
文字化けするほうは(北米のサーバー)
character set client latin1
character set connection latin1
character set database latin1
でした。文字コードのデフォルトが違うからだと思い、ググって見たところ、
結構よくある問題で、my.cnf でデフォルト文字設定utf-8に変更するなどで解決できるとありました。
でも、使っているサーバーは予めphpMYadminがインストールされているレンタルサーバーであるのでmy.cnfはさわれないのでは???
サーバー会社に連絡して変更可能かと聞いたところ、my.cnfを変更することはできません。またデータベースのサポートはいたしません。と冷たく返答。サーバー会社を変えたいところですが、自分が借りたサーバーではないのでそのまま使うしかありません。
ただ、教わった、sqlコマンドからALTER DATABASE <your_database_name> CHARACTER SET utf8 COLLATE utf8_general_ci を実行したところcharacter set databaseのみutf8になりました。(文字化けは一緒)
character set connection とcharacter set database をmy.cnfをいじらず、sqlコマンドで変更可能なのでしょうか?
もし、無理ならばどのような方法があるのでしょうか?
サイトのフォームからの送信と受信はUTF-8に設定しています。
(だからだとおもいますが、ブラウザの表示だけは文字化けせずにでます。)
お知恵がありましたらよろしくお願いします。
補足
ノーツ上のメールを一旦テキストで保存して、 それを Unicode(UTF-8)対応のエディタで表示しようとしますが 出来ません。