質問: "report.csv"; header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . $fileName); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . filesize($fileName)); readfile($fileName); echo "社員数:".$count.""; echo "売上合計:".$sum.""; echo "売上平均:".$avr.""; flock($fh, LOCK_UN); fclose($fh); } ?> ``` ![csv文字化け](https://i.stack.imgur.com/AHDhz.png)
回答: CSVの期待する文字コードはSJISということでよろしいでしょうか? 元のCSVを読み込むときはwhile内でSJIS→UTF8への変換がされていると思うのですが、書き出す時に変換されておらず、UTF8のまま出力されているように見えます。 echoでの出力内容を、入力時と同じようにmb_convert_encodingでUTF8→SJISに変換してやれば解決しませんでしょうか。