MySQLで「???」と文字化け。phpMyAdminでは文字化けはしません。


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のままで文字化けを解消したいと思います。

以上よろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/05/25 19:13:48
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント35pt

MyNA Web Site

TeraTerm で使用している文字コードは何ですか?

同じく UTF-8 なら、接続後に

SET NAMES 'utf8';

を実行してからクエリを発行すれば文字化けすることは無いと思いますが。

id:metazy

文字化けせずに表示できました。ありがとうございます。

TeraTermは接続の度に SET NAMES 'utf8'; を実行しなければならないのでしょうか。

また他のターミナルエミュレーターでも接続する場合もこの実行が必要になるのでしょうか。

面倒ではないのですが接続する度にこの作業がなければいいなと思ってしまいます。

2008/05/25 14:00:23
id:b-wind No.2

回答回数3344ベストアンサー獲得回数440

ポイント35pt

TeraTermは接続の度に SET NAMES 'utf8'; を実行しなければならないのでしょうか。

TeraTerm では無く、mysql コマンドの仕様です。

なので他のターミナルエミュレーターでも状況は変わりません。


MySQL :: MySQL 5.1 リファレンスマニュアル :: 7.7.1 mysql オプション

サーバー設定が変更できるなら、my.cnf に default-character-set オプションを指定することで

入力を省略できます。

id:metazy

残念ながら利用しているレンタルサーバでmy.cnfの設定変更ができません。設定変更できるサーバに引っ越したいと思います。

ありがとうございました。

2008/05/25 14:12:05

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません