PHP初心者入門講座 に関する質問
【質問】
「Step2・データベースに接続する」までは何とかいけたのですが、PHPのプログラムを実行して表示した場合に、以下のように文字化けします。
全件表示
47件のデータがあります。
PREF_CD PREF_NAME
1 ???
2 ???
3 ???
4 ???
5 ???
PREF_NAMEが ??? となってしまいます。
もちろんPHPソースなどには問題はありません。県名が正しく出るようにするにはどうしたらいいですか?
【回答】
文字化けの原因は、文字コードの不一致がほとんどです。
1.データベースの文字コード
2.PHPのソースコードの文字コード(保存時の)
3.HTMLのメタタグの文字コード
メタタグの例
<META http-equiv="content-type" content="text/html; charset=Shift_JIS">
これらを全て一致させる必要があります。
試しにWebブラウザのメニューから「表示 → エンコード」で、日本語関連の文字コードをいろいろ変更してみてください。もしこれで正しく表示される文字コードがあれば、原因を特定するヒントになります。
また可能性は低いと思いますが、以下の点にも注意してください。
・MySQLは、データベース、テーブル、フィールドごとに文字コードを指定できます。気を付けないと、異なる文字コードで扱っている場合があります。
・MySQLにデータをインポートする場合は、データベースの文字コードと、インポートするファイルの文字コードを一致させる必要があります。
【お願い】
読者の皆様の個々の環境に対応するのには無理があるので、当講座で学習中だけでも「phpdev」で環境を統一することをおすすめします。
そのほうが問題が発生しにくいし、的確にアドバイスすることができます。
PHPのプログラミングに慣れてから、新しいバージョンの Apache、PHP、MySQL で独自に環境を構築してください。その頃には問題が発生した時に、自分である程度解決できるようになっているはずです。
ちなみに、「phpdev」内にある Apache、PHP、MySQL は、フォルダごと簡単に削除できるので、独自にインストールする場合も影響はありません。