この記事について
| 環境 | DreamHost、PHP、mysql |
|---|---|
| 目的 | mysqlから取り出した日本語が????と文字化けするのを直す |
| 結果 | 接続時に mysql_query(‘SET NAMES utf8’) もしくは mysql_set_charset(‘utf8’) を実行して解決 |
つまずきポイント要約
- SET NAMESには脆弱性があるのでmysql_set_charsetを使うのがいいよう
事象
DreamHost にてデータベースの情報を mysql で取り出すと日本語が????と文字化けする。
対処
文字化け対策としてデータベース接続時に文字コードを指定する。
$link = mysql_connect($hostname,$username,$password);
mysql_select_db($database) or die("Unable to select database");
mysql_query('SET NAMES utf8', $link); ←これを追記
//mysql_set_charset('utf8'); ←もしくはこれ
SET NAMES には脆弱性あるので mysql_set_charset を使うのがいいよう。
もしくは my.cnf で文字コードを指定する。
