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の検索に引っかかるように、参考までにここに記しておく。
| 固定リンク
「IT」カテゴリの記事
- Twitterに対する宮台真司の梅田望夫的ナイーブさのある反応(2009.06.26)
- モバゲーの柴田淳の日記を一括ダウンロードするプログラム(2009.06.24)
- Two Serious 'Specs' of MS Office Project Server 2007(2009.06.18)
- Excelの色付きセルで表現したガントチャートを図形に自動変換するマクロ(2009.06.12)
- 久しぶりの中村正三郎氏で梅田望夫批判(2006.08.24)
この記事へのコメントは終了しました。

コメント