如何在PHP中输出Excel将正确读取的UTF-8 CSV?我有一个非常简单的东西,它只是输出一些CSV格式的东西,但是它必须是UTF-8。我在TextEdit、TextMate或Dreamweaver中打开这个文件,它正确地显示UTF-8字符,但是如果我在Excel中打开它,它就会做这种傻事。以下是我在文件中的主要内容:header("content-type:application/csv;charset=UTF-8");header("Content-Disposition:attachment;filename=\"CHS.csv\"");除了Excel(Mac,2008)不想正确导入它之外,这一切似乎都具有预期的效果。Excel中没有选项可以让我“打开UTF-8”或任何东西,所以…我有点生气。我似乎在任何地方都找不到任何明确的解决办法,尽管很多人都有同样的问题。我看到的最重要的是包括BOM,但我不知道如何做到这一点。如你所见,我只是echo用这些数据,我不会写任何文件。我可以这样做,如果我需要,我只是不是因为似乎没有必要在这一点上。有什么帮助吗?更新:我尝试将BOM作为echo pack("CCC", 0xef, 0xbb, 0xbf);我刚刚从一个试图探测到BOM的网站上找到的。但是Excel只是在导入第一个单元格时将这三个字符附加到第一个单元格中,并且仍然会混淆特殊字符。
3 回答
MMMHUHU
TA贡献1834条经验 获得超8个赞
header('Content-Encoding: UTF-8');header('Content-type: text/csv; charset=UTF-8');header('Content-Disposition: attachment; filename=Customers_Export.csv');echo "\xEF\xBB\xBF"; // UTF-8 BOM
冉冉说
TA贡献1877条经验 获得超1个赞
header('Content-Description: File Transfer');header('Content-Type: application/octet-stream');header('Content-Disposition: attachment; filename=file.csv');header('Content-Transfer-Encoding: binary');header('Expires: 0');header('Cache-Control: must-revalidate, post-check=0, pre-check=0');header('Pragma: public');echo "\xEF\xBB\xBF"; // UTF-8 BOMecho $csv_file_content;exit();- 3 回答
- 0 关注
- 781 浏览
添加回答
举报
0/150
提交
取消
