WindowsXPにインストールしたUTF-8 TeraTerm Pro with TTSSH2でMySQLに接続すると日本語が「???」と文字化けします。phpMyAdminで表示すると文字化けしません。
Linux
PHP 5.2.5
MySQL 5.1.22-rc
MySQL の文字コード: UTF-8
phpMyAdmin 2.10.1
phpMyAdminの文字コード:utf8_general_ci
・PHPスクリプトでset names 'utf8' を設定しています。
・文字コードはutf8のままで文字化けを解消したいと思います。
以上よろしくお願いします。
TeraTerm で使用している文字コードは何ですか?
同じく UTF-8 なら、接続後に
SET NAMES 'utf8';
を実行してからクエリを発行すれば文字化けすることは無いと思いますが。
TeraTermは接続の度に SET NAMES 'utf8'; を実行しなければならないのでしょうか。
TeraTerm では無く、mysql コマンドの仕様です。
なので他のターミナルエミュレーターでも状況は変わりません。
MySQL :: MySQL 5.1 リファレンスマニュアル :: 7.7.1 mysql オプション
サーバー設定が変更できるなら、my.cnf に default-character-set オプションを指定することで
入力を省略できます。
残念ながら利用しているレンタルサーバでmy.cnfの設定変更ができません。設定変更できるサーバに引っ越したいと思います。
ありがとうございました。
文字化けせずに表示できました。ありがとうございます。
TeraTermは接続の度に SET NAMES 'utf8'; を実行しなければならないのでしょうか。
また他のターミナルエミュレーターでも接続する場合もこの実行が必要になるのでしょうか。
面倒ではないのですが接続する度にこの作業がなければいいなと思ってしまいます。