CSV变音字符未正确解析

时间:2015-03-26 08:26:53

标签: php export-to-csv

我在导出CSV时遇到问题。

标头看起来像这样:

header('Content-Encoding: unicode');
header('Content-type: text/csv; charset=unicode');
header('Content-Transfer-Encoding: binary');
header('Content-Disposition: attachment; filename="'.$fname.'.csv"');
header("Content-length: 21474836470"); // tells file size set it to maximum    
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); //Must revalidate
header('Pragma: no-cache');
header('Expires: 0');

正确打印数据,但它以CSV格式搞砸了 我已经尝试将Content-Encoding更改为utf-8,iso-8859-1等等。

1 个答案:

答案 0 :(得分:4)

  1. Content-Encoding不表示字符编码,它表示传输编码。例如,如果HTTP响应被压缩,它会说gzip
  2. unicode不是编码,它是一个定义标准。 UTF-8ISO-5589-1等是具体的编码。
  3. 这在很大程度上取决于您打开生成的文件的应用程序。如果这是Excel,我会告诉你,它以编码而臭名昭着。搜索关于Excel和CSV编码的SO的许多问题,例如How can I output a UTF-8 CSV in PHP that Excel will read properly?。否则,我们需要更多信息才能说出任何内容。