<?php $pdo = new PDO( 'mysql:host=yourhost;dbname=yourdb;charset=utf8', 'user', 'password' );
ブラウザで日本語が焼肉ã¦ã„ã—ょãのように文字化けをしてしまいます。
charset=utf8を記載しなかったらちゃんと日本語が表示されるので逆な感じがするのですがこれは何が原因だと考えられるのでしょうか?
mysql> show variables like '%char%'; +--------------------------------------+----------------------------+ | 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 | | character_sets_dir | /usr/share/mysql/charsets/ | | validate_password_special_char_count | 1 | +--------------------------------------+----------------------------+
はこのようになっています。
character_set_databaseとcharacter_set_serverはlatin1になっていたのですが
mysql> set character_set_database = utf8; mysql> set character_set_server = utf8;
で変更しました。
データベースから取得した情報を出力するPHPファイルはutf8で作成されているのでしょうか?
php.iniはmbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = pass mbstring.http_output = pass mbstring.encoding_translation = Off mbstring.detect_order = auto となってます
php.iniの設定ではなく「index.php」等、表示用ファイルの文字コードです。エディタでファイルを作成して保存するときに文字コードを指定できるはずですが、utf8を指定して保存しているのでしょうか?
それは全てutf8で保存してあります
回答4件
あなたの回答
tips
プレビュー