PHPプログラムで日本語が文字化けする場合の対応
Web+DBプログラミング入門 Apache + PHP + MySQL編の
PHPサンプルプログラムを実行した結果、MySQLのテーブルに格納し、
PHPプログラムでブラウザ上に表示した日本語(漢字・倍角の文字)が
正しく表示されない場合はDBへ接続しているプログラムソースの
//DBへ接続開始 サーバー名--localhost ユーザー名--root パスワード--root
$dbHandle = mysql_connect("localhost","root","root");
//DBの接続に失敗した場合はエラー表示をおこない処理中断
if ($dbHandle == False) {
print ("can not connect db\n");
exit;
}
$dbHandle = mysql_connect("localhost","root","root");
//DBの接続に失敗した場合はエラー表示をおこない処理中断
if ($dbHandle == False) {
print ("can not connect db\n");
exit;
}
の下の行にMySQLのクライアントの文字コードをsjisに設定する次の3行を
//MySQLのクライアントの文字コードをsjisに設定
mysql_query("SET NAMES sjis")
or die("can not SET NAMES sjis");
mysql_query("SET NAMES sjis")
or die("can not SET NAMES sjis");
を追加してください。
*注 ---
プログラムファイルの文字コードはsjisを指定して保存してください。
サクラエディタなど文字コードを指定できるエディタを使うと便利です。
MySQLのクライアントの文字コードをsjisに設定していないので日本語が文字化けしている例 |
MySQLのクライアントの文字コードをsjisに設定し日本語が正常に表示された例 |
Web+DBプログラミング入門 Apache + PHP + MySQL編のサンプルプログラムは
MySQL Version5に対応用に変更し、近々リニューアルする予定です。
その際、上記のMySQLのクライアントの文字コードをsjisに設定する部分も追加して
更新する予定ですのでしばらくお待ちください。
*注 ---
MySQLのクライアントの文字コードをsjisに設定する必要があるプログラムはDBへ接続しているプログラム
mytest1.php
mytest2-1.php
mytest3-1.php
mytest4-1.php
mytest5.php
mytest5-1.php
mytest6.php
mytest7.php
mytest8.php
などです。
mytest2.php
mytest3.php
mytest4.php
などDBへ接続していないプログラムには追加する必要がありません。
【関連情報】
・Apache + PHP + MySQL編 Web+DBプログラミング入門
・MySQL Version5 関連記事一覧
・Apache2、PHP5 関連記事一覧