プロが教える店舗&オフィスのセキュリティ対策術

タイトル通りです。
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のオプションも試しみましたがうまくいきませんでした。

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

A 回答 (1件)

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



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

この回答への補足

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

補足日時:2013/09/20 23:30
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/09/20 20:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す