我正在尝试生成一个CSV文件,除了德语字符ä,ë,ï等之外,它会被完美地创建。我只是将信息提供给$ data变量并尝试使用:
utf8_encode($data);
但是我得到了奇怪的文字,这里是文件的标题:
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"file1.csv\"");
我也尝试过使用iconv();但到目前为止没有运气。
修改
注意到我的$ data已经是utf-8所以我删除了utf8_encode();还是,当我尝试打印时,我得到了吗?
并将标题更改为:
header("Content-Type: text/plain; charset=utf-8");
答案 0 :(得分:2)
使用:
header("Content-Type: text/plain; charset=utf-8");
并确保您的$data
不是utf-8!
答案 1 :(得分:2)
不知道,如果这可能导致错误:csv是一个ascii-text文件。您应该使用text/csv
或至少text/plain
。毕竟每个text/*
- mime-type更有用,然后application/octet-stream
,因为这定义了二进制数据,csv文件显然不是。
然后,如果文件已经以UTF-8编码,请不要重新编码
utf8_encode($data); // not useful, if $data is already utf-8
接下来,将charset添加到content-type标头
Content-Type: text/csv; charset=utf-8
(根本)
header("Content-Type: text/csv; charset=utf-8");
最后但并非最不重要:确保您要打开文件的应用程序了解utf-8并将其用于文件。