- 締切済み
MySQLとperlの連携で漢字文字化け
MySQLにて漢字で登録したデータをperlを使用して持ってきて、 ブラウザで表示させると感じ部分が「?」になってしまいます。 文字コードはutf-8で統一しているつもりです。 mysql> show variables like 'character\_set\_%'; +--------------------------+--------+ | Variable_name | Value | +--------------------------+--------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | +--------------------------+--------+ ブラウザ側もページ情報の文字エンコーディングを見るとUTF-8となっています。 他にどのような要因が考えられますでしょうか。 よろしくお願いします。 使用OS CentOS 5.1 perlで持って来ているところ $sth = $db->prepare( "SELECT * FROM user_info WHERE name = '$uid'"); $sth->execute; @user_info = $sth->fetchrow_array; print "@user_info\n";
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- notnot
- ベストアンサー率47% (4900/10359)
mysql> show variables like 'character\_set\_%'; これを実行する前に、set character set utf8; を実行した訳じゃなくて、my.cnfで、default-character-set-name=utf8 と指定してあるんですよね? そうであれば、データを格納した時点で化けている可能性があります。 どこかのcharacter setを誤って設定したままでデータをインサートしたとか。
お礼
回答ありがとうございます。 データベースへ接続する際にmy.cnfを読み込ませることで解決しました。 接続するDB名の設定 my $dbn = "DBI:mysql:test:localhost;mysql_read_default_file=/etc/my.cnf";