WindowsコマンドプロンプトからPHPスクリプトを実行して、
oracleDBからデータをcsvファイル出力させようとしていますが、
下記のように日本語部分(全角?)が文字化けしてしまいます。
半角英数字は正常に出力されています。
- 202102251000,????????,500,PAWS11013,,????4
文字コードの設定に誤りがあると思うのですが、変更してみてもうまくいきません。
csvファイルの書き込み時に何か設定が要るのでしょうか?
○文字コードの設定
mb_language("ja"); mb_internal_encoding("utf-8"); mb_http_input("auto"); mb_http_output("utf-8");
○csvファイル書込み部分
$file = $dir.'Test_'.$fileName.'.csv'; $fa = fopen($file, "w"); fwrite($fa, "\xEF\xBB\xBF"); // BOMを付加 fwrite($fa, "日付,商品名,価格,商品コード,店名"); fwrite($fa, "\n"); if ( $fa ) { foreach ($DlData as $value) { fputcsv($fa, $value); } } fclose($fa);
php.iniのほうでは下記のような設定をしています。
default_mimetype = "text/html" default_charset = UTF-8 mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.encoding_translation = Off
どこを直せばうまくいくのかご教示よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー