php‎ > ‎

mysql側でUTF-8を指定しているときに文字化けすることがある

データベースにmysqlを利用していてデフォルトの文字コードをUTF-8にしていると、PHPでHTMLに出力した際文字化けすることがある。対策としてはPHP側から強制的に文字コードを指定することになる。Apacheやデータベース側で対応することも可能なのかもしれないが、レンタルサーバーがこれだけ普及している状態では効率が悪くとも言語側で対応する必要がある。データベースに接続した後に以下のコマンドを実行することで日本語の文字化けが止まる場合が多い。
mysql_query("SET NAMES utf8");

例)データベースに接続後、データベースを選択して文字コードを強制指定する。
$this->con=mysql_connect($this->_host, $this->_datauser, $this->_datapass);
mysql_select_db($this->_database);
mysql_query("SET NAMES utf8");

Comments