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;
}

の下の行にMySQLのクライアントの文字コードをsjisに設定する次の3行を
//MySQLのクライアントの文字コードを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 関連記事一覧


※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。