PHP+MySQLでPDOを使って開発していたところ文字化けが解消しない。
どうやらPHP5.3.3のバグのよう対象を備忘メモ
5.3.3の場合、
1 2 |
mysql_set_charset('utf8'); |
で試したが改善せず。バグの模様。
下記のようにoption指定でmy.cnfを通してcharset指定で解消した。
1 2 3 4 5 |
$options = array( PDO::MYSQL_ATTR_READ_DEFAULT_FILE => '/etc/my.cnf', ); $dbh = new PDO($dsn, $user, $password, $options); |
+補足
下記コードでも改善するが脆弱性があるとのこと。SET NAME
はアプリケーションからの呼び出しはNG。
1 2 3 |
$dbh = new PDO($dsn, $user, $password); $dbh->query('SET NAMES utf8'); |