使用php在csv文件上无法正确显示的德语字符

时间:2011-07-21 09:55:12

标签: php csv

我正在尝试生成一个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");

2 个答案:

答案 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并将其用于文件。