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

解決済みの質問

php5,MySQL5で文字化けが起こる

環境:php5,MySQL5,XP
MySQL5は、インストール時にsjisを指定。
php.iniもmbstring.internal_encoding = SJIS
ドスプロンプトでSelect文を発行すると漢字で表示されます。


$dbtype = "mysql";
$sv = "localhost";
$dbname = "*****";
$user = "root";
$pass = "*****";

// 文字コード
$enc_disp = "EUC-JP";
$enc_db = "EUC-JP";

// データの文字コードを変換する関数
function cnv_enc($string, $to, $from) {
// 文字コードを変換する
$det_enc = mb_detect_encoding($string, $from . ", " . $to);
if ($det_enc and $det_enc != $to) {
return mb_convert_encoding($string, $to, $det_enc);
}
else {
return $string;
}
}

// データベースに接続する
$dsn = "$dbtype://$user:$pass@$sv/$dbname";
$conn = DB::connect($dsn);

$sql = "SELECT * FROM A";
$res = $conn->query($sql);
→この後、SQLの内容をIEで表示させると
”2 Web?? 002 ??????????????”の様に
テーブルの中の漢字の部分だけが??????で表示されます。

ヒント、参考になるサイトなど、教えていただけると幸いです。

投稿日時 - 2008-05-08 16:56:03

QNo.4006936

すぐに回答ほしいです

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

cnv_enc()をどう使っているかなどがサッパリわかりませんが、スクリプトの記述も出力もEUC-JPでしょうか。

であれば、MySQLへの接続直後に「set names ujis」を投げておかないとEUC-JPで扱えないのでは?おそらく「mysql set names」で検索すれば説明しているサイトがHitすると思います。

投稿日時 - 2008-05-08 17:07:22

ANo.1

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

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

回答(1)

あなたにオススメの質問