PHP输出CSV文件

时间:2013-12-28 16:08:00

标签: php csv encoding utf-8

我有一个PHP文件,可生成CSV文件(下载)和HTML文件 当我尝试使用BOM将文件编码为UTF-8时,CSV文件将呈现为UTF-8,但HTML文件将留下2行空格。
当我尝试将文件编码为没有BOM的UTF-8时,CSV文件将不会呈现为UTF-8,从而导致无意义的代码。 我试图添加声明:

echo "\xEF\xBB\xBF";

但是,无法正确读取文件。 附:我没有使用任何功能:fopen,readfile,...。 以下是我的CSV文件标题:

header("Content-type: application/octet-stream");
header("Content-encoding: UTF-8");
header("Content-dispositon: attachment; filename=name.csv");

有谁能告诉我如何解决这两个问题?我只能解决其中任何一个。

1 个答案:

答案 0 :(得分:0)

尝试,无需BOM:

header("Content-type: application/octet-stream; charset=utf-8");
header("Content-dispositon: attachment; filename=name.csv");

检查数据是否真的是用UTF-8编写的,如果您使用的是latin1数据库或ISO / ANSI PHP脚本,请使用utf8_encode转换echo / {{{{1}之前的内容1}}数据。