dポイントプレゼントキャンペーン実施中!

環境: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 ??????????????”の様に
テーブルの中の漢字の部分だけが??????で表示されます。

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

A 回答 (1件)

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



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

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