質問: "hoge.csv"; header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.$fileName); readfile($fileName); echo mb_convert_encoding($fileName,"SJIS", "UTF-8"); ``` しかし、出力されたファイルはUTF8のままです。 http://qiita.com/ikemonn/items/f2bc4f9f834c989084ff を参考にしたのですが、ちょっと古いのでしょうか。 今現在、PHPのバージョンは5.6です。 何が原因か分からず途方にくれています。 原因が分かる方おられましたらご教授いただけると幸いです。 よろしくお願いいたしますm(__)m 追記. PHPにエラーはなく、CSVにSJISで表現できない文字はありません。
回答: PHP: readfile - Manual > > 説明 ¶ > > > int readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] ) > > ファイルを読んで標準出力に書き出します。 > > > 変換しないで出力してたらそりゃUTF8のままですわ。 あと、 PHP: mb_convert_encoding - Manual > > 説明 ¶ > > > string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding = mb_internal_encoding() ] ) > > 文字列 strの文字エンコーディングを、 オプションで指定した from_encoding から to_encoding に変換します。 > > > ``` mb_convert_encoding($fileName,"SJIS", "UTF-8"); ``` ↑これで変換してる文字は「hoge.csv」じゃねっすか?