質問: new PDO($dsn, $user, $password); $dbh->query('SET NAMES utf-8'); ``` として文字コードの変換をしていますが、phpMyAdminで確認すると?????????と文字化けします。 もちろんこのまま出力しても文字化けのまま表示されます。 sqlの文字セットがこちら ``` character_set_client utf8 character_set_connection utf8 character_set_database utf8 character_set_filesystem binary character_set_results utf8 character_set_server ujis character_set_system utf8 character_sets_dir /usr/local/share/mysql/charsets/ ``` ちなみ出力時は ``` mb_convert_encoding($str, "UTF-8", "ujis"); mb_convert_encoding($str, "UTF-8", "EUC-JP"); ``` どちらも試しましたが駄目でした... どなたか回避する方法をご存知の方はいらっしゃらないでしょうか..? 追記: PHPでフォームから受け取ったデータを画面にechoで出力しても文字化けは発生しないのでデータベースに格納した際に何か不具合が起きていると判断しています
回答: > > $dbh->query('SET NAMES utf-8'); > > > 調査すべき項目は多数考えられますが、とりあえず上記は間違っています。 正しくはハイフン無しの「utf8」です。 PHP: 文字セット - Manual