Windows環境でMySQLからデータを引っ張ってきて、UTF-8エンコーディングのサイトで表示させようとすると文字化けしてしまいます。
MySQLのコマンドでSHOW VARIABLES LIKE 'char%';を実行したところ、下記結果を得ました。
+--------------------------+-------------------------------------------+
| Variable_name | Value |
+--------------------------+-------------------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\MySQL\MySQL Server 4.1\share\charsets/ |
+--------------------------+-------------------------------------------+
原因をご存知の方はお教えいただけますと幸いです。
ここを参考にしてください。
http://vivian.reverb.jp/mysql4.1.html
上記が完璧なmysql構築です。もし再コンパイルなどできない環境でしたら、
お使いのphpウェア(mysqlと交信するウェア)のソースの中で明示的に
文字コードを指定することでも文字化けは解消します。くわしくは
過去ログを検索してください。
character_set_client=latin1 な環境では日本語の表示は不可能です。
Windows環境でMySQLからデータを引っ張ってきて
の部分がどうやっているか分かりませんが、実行前に必ず
SET NAMES 'utf8';
を実行するようにしてください。
http://www.mysql.gr.jp/frame/modules/bwiki/?FAQ#content_1_40
コマンドラインというのが Windows のコマンドプロンプトの事であるならば、
SET NAMES 'SJIS';
を実行する事になります。
以上のように、SET NAMES で指定する内容はクライアントの文字コードに合わせてください。
ここのデータを表示させる、PHPプロラムがUTF-8にしなければならないのですが、SJISにすると、PHPプログラムでそのデータを表示する際に文字化けしてしまいませんでしょうか?
上記を行い、コマンドラインでインサートしたところ、日本語が空欄で挿入されてしまいました。
何か間違った設定があるのでしょうか?