前提・実現したいこと
phpの初心者です。
phpでmysqlに登録されたデータベースをcsvでダウンロードする
システムを作成したいです。
発生している問題・エラーメッセージ
保存された、CSVファイルを確認すると日本語がすべて「????」と半角のはてなになってしまいます。
該当のソースコード
<?php //////////////////////////////////////////////////// // MySQLデータベースからCSV出力するサンプル //////////////////////////////////////////////////// // ダウンロードするファイル名 $down_file = date('Ymd') . '.csv'; // MySQL関係のパラメータ設定 $dbHost = '******'; $dbUser = '****'; $dbPass = '****'; $sql = 'SELECT * FROM daily.colmun'; // MySQLへ接続 if (!$conn = @mysql_connect($dbHost, $dbUser, $dbPass)) trigger_error("MySQL接続エラー", E_USER_ERROR); // CSVデータの生成 -> $csv[] // $csv[]は、CSV1行で1つの要素となっている配列 if (!$rs = mysql_query($sql, $conn)) trigger_error("クエリー実行エラー", E_USER_ERROR); while ($rec = mysql_fetch_row($rs)) { if (isset($buf)) unset($buf); foreach ($rec as $val) { if (is_numeric($val)) $buf[] = $val; else $buf[] = '"' . $val . '"'; } $csv[] = implode(',', $buf) . "¥r¥n"; } // CSVの出力 header ("Content-Type: application/force-download"); header ("Content-Disposition: attachment; filename=" . $down_file); header ("Content-Description: File Transfer"); header ("Content-Length: " . strlen(join("",$csv)) ); foreach ($csv as $mval) { echo mb_convert_encoding($mval, '','UTF-8'); } ?>
試したこと
foreach ($csv as $mval) {
echo mb_convert_encoding($mval, '','UTF-8');
この部分を
echo mb_convert_encoding($mval, 'SJIS','UTF-8');
など変更しましたがうまくいきませんでした。
どうぞご教示いただけますでしょうか。。。
回答1件
あなたの回答
tips
プレビュー