PHP 文字化けについて。

【講座名】
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 は、フォルダごと簡単に削除できるので、独自にインストールする場合も影響はありません。

スポンサードリンク


スポンサードリンク






プログラミング入門 Q&A TOPへ