こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

設定が間違っていないのに文字化けします

タイトル通りです。
VirtualBoxの仮想環境のCentOS内に
Apatch+PHP+Mysqlで開発環境を作っているのですが
どうにもこうにも文字化けします

症状としては
phpmyadminで確認した時、日本語のデータが正しく表示されるが
実際にphpでデータベースから取り出して表示すると???になります。
phpのフォームから日本語を入力してそのデータを表示すると正しく表示されるのですが
今度はデータベース内のデータが文字化けしています。


こちらのスクリプトでは文字化けしないのでPHPの設定ミスではないようです
http://tsuttayo.jpn.org/php/char_trn/

phpinfoの情報

DirectiveLocal ValueMaster Value
mbstring.detect_orderautoauto
mbstring.encoding_translationOffOff
mbstring.func_overload00
mbstring.http_inputautoauto
mbstring.http_outputpasspass
mbstring.http_output_conv_mimetypes^(text/|application/xhtml\+xml)^(text/|application/xhtml\+xml)
mbstring.internal_encodingUTF-8UTF-8
mbstring.languageJapaneseJapanese
mbstring.strict_detectionOffOff
mbstring.substitute_characterno valueno value




Mysqlの設定もご覧の通りです
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/


以下my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

character_set_server=utf8
default-storage-engine=InnoDB
innodb_file_per_table

default-character-set=utf8
skip-character-set-client-handshake

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8
[mysqldump]
default-character-set=utf8

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


スクリプトはちゃんとUTF-8BOMなしで作っています。

Mysqlのバージョンは 5.5.33です。
PHPのバージョンは 5.4.19です。
PDOのオプションも試しみましたがうまくいきませんでした。

非常に困っています。
回答いただけたら幸いです。

投稿日時 - 2013-09-19 07:25:23

QNo.8270506

すぐに回答ほしいです

質問者が選んだベストアンサー

すでに対策済みかもしれませんが以下チャレンジしてみては?

・テーブルやカラムの照合順序
・my.cnfでのinit-connectの誤設定
・phpでPDOを利用しているのであればnew PDO()する際にcharsetを指定していない
・単に出力されたデータがブラウザで正当に評価されていないだけならheader()やmetaなどで補足する

投稿日時 - 2013-09-20 14:08:07

補足

よくよく考えたらすでに全部対策済みでした・・・
init-connectのSET NAMEだけは非推奨なので行っていません。

投稿日時 - 2013-09-20 23:30:33

お礼

回答ありがとうございます。
試してみます。

投稿日時 - 2013-09-20 20:34:19

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問