WindowsXP
Apache 2.0.55
PHP 5.1.1 Shift_JIS
MYSQL 5.0.16 UTF-8
PHPMYADMIN 2.6.4-pl4
PHP.iniの主要な設定
extension=php_mbstring.dll
extension=php_mysql.dll
default_charset = IShift_JISI
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
PHPMYADMINを使用してデータを入れました。PHPMYADMINではデータ内容は全て文字化けせずに正常に表示されます。
自分でデータ内容を表示するPHPを書き(view.php)、データベース内容を表示さすと日本語部分が??????????で全て表示されます。変な文字になることもなく、半角英数以外は「?」になります。
ここで色々やりとりして解決に導いてほしいです。
知っている方よろしくお願いします。上記の設定にはこだわっていません。
また、最終的にはLINUXで運用ですので、助言もお願いします。
mysqlのデフォルト文字コードがutf-8になっているということですが、phpmyadminで入力した文字列の実際の文字コードはなんになっているのでしょうか。phpmyadminの文字コードがutf-8ならば、utf-8になっているのかもしれません。phpmyadminをブラウザで見たときの文字コードはなんになっているでしょうか。
また、mb_convert_encodingを使用した上で文字化けしているのでしょうか。使用しないで文字化けしているのであれば、単純に文字コードを変換するか、スクリプトのほうをutf-8にあわせるかすれば解決する可能性があります。ともかく、問題の文字列の実際のエンコーディングを知る必要があります。
mb_detect_encoding()で検証してみてはいかがでしょうか。