XAMPP上のPHP+MySQL文字化け解決

XAMPP for Windows Version 1.5.0-pl1をWindowsサーバに導入して、PHP(文字コードはシフトJIS)からMySQL5.0.15-nt内の日本語データを検索・表示するかんたんなスクリプトを作成したのだが、日本語部分が「????????」と文字化けしてしまう。同じPHPからOracle9iの日本語データを検索・表示しても文字化けしないので、MySQLの設定に問題があることが分かった。

そこでmy.cnfで[mysqld]セクション(サーバ側)の文字セットをsjisに変更したのだが、それでも状況は変わらない。サーバ上のコマンドラインプロンプトから「mysql.exe」を実行し、同じテーブルの内容をSELECTで表示させると、やはり日本語部分だけが「????????」と文字化けする。念のために、「SET CHARACTER SET SJIS;」というコマンドを投入してから、再度同じテーブルにSELECTをかけると、今度は日本語が正しく表示された。
「status」コマンドでサーバ側の文字セット、クライアント側の文字セットが、ともにSJISになっているにもかかわらず、「SET CHARACTER SET SJIS;」を実行しなければ、SJISで格納した日本語が正しく表示されないのだ。

PHPのスクリプトでも、まず「SET CHARACTER SET SJIS」を実行してから、SELECTを発行すると、今度はWebブラウザ上に正しく日本語が表示された。バージョン5.0からMySQLの日本語対応の内容が変更になっているらしく、インターネットでいろいろ検索したページは、どれも参考にならず、自力で解決するしかなかった。
Googleの検索に引っかかるように、参考までにここに記しておく。
>> コーディングに疲れたら究極の「癒し系」歌手Jade Yinを聴こう

0 thoughts on “XAMPP上のPHP+MySQL文字化け解決

  1. Dragonfly's blog

    WinXPでXAMPP上のPHP MySQL文字化け

    新しくhpのノートパソコンを買ったので、ローカルにwebプログラム開発環境を構築

  2. F.Ko-Jiの一秒後は未来

    MySQLの文字化けに苦労した

    XAMPPをインストールしてから、PHP+MySQLの勉強をしている。PHPはPerlっぽいところがあるので、Perlを知っていればPHPの基本的な部分は楽に習得できる。
    一方、MySQL。1冊本を買ってきて、「PHP+MySQLの練習してみるかぁ」と意気込んで始めたものの、いきなり日本語の文字……

  3. なんでもできる

    動作検証用ローカルサーバー環境の構築

    お手軽に動作検証用ローカルサーバーを立てるなら、Windows環境でやってしまえ…

  4. artful

    xampp:Mysqlに関するPHPMyAdminの文字化け

    xamppを入れたのですが、PHPMyAdminでの日本語データ操作時に文字化け…