CentOS4.2
mysql-server-4.1.12-3.RHEL4.1
php-4.3.9-3.8
を使用しています。
-php.ini--------
mbstring.language = Japanese
mbstring.detect_order = NULL
mbstring.http_input = SJIS, EUC-JP, UTF-8, ASCII, JIS
mbstring.http_output = SJIS, EUC-JP, UTF-8, ASCII, JIS
mbstring.internal_encoding = SJIS
mbstring.script_encoding = NULL
mbstring.substitute_character = NULL
mbstring.func_overload = ”0”
mbstring.encoding_translation = On
----------------
この環境でのサーバを構築して、
テストがてらに、sjis_japanese_ciでデータベースを作り、
sjisでPHPスクリプトを作成しました。
日本語を交えたINSERT文をPHPスクリプトから実行すると、実行結果(print分)は正常ですが、データベースに挿入された文字が化けます。
文字化けの確認は、PHPMyAdminからです。
何か、設定を変える必要などあるのでしょうか?
http://php.s3.to/man/function.mb-convert-encoding.html
mb_convert_encoding
PHPMyAdminのキャラセットがEUC-JPだからでは?
<meta http-equiv=”Content-Type” content=”text/html; charset=EUC-JP” />
両方ともSJISに揃えて出力も正常に行えているのであれば設定を変更する必要はないかもです。
ただ、環境に囚われないコーディングをしたいのであれば、
// 文字コーディング
$str = mb_convert_encoding($str, $pcDBEncType, ”auto”);
// [サーバの関係上EUCで格納されている]
$sRet = mb_convert_encoding($rs[$sFields], $pcPageEncType, ”auto”);
入れるときと出す時にコンバートを掛けてやるなどという手が考えられます。