我有一个非常简单的东西,只是以 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 在导入时只是将这三个字符附加到第一个单元格,并且仍然弄乱了特殊字符。
我有同样(或类似)的问题。
就我而言,如果我将 BOM 添加到输出中,它就会起作用:
header('Content-type: text/csv; charset=UTF-8');
header('Content-Disposition: attachment; filename=Customers_Export.csv');
echo "\xEF\xBB\xBF"; // UTF-8 BOM
我相信这是一个相当丑陋的 hack,但它对我有用,至少对 Excel 2007 Windows 有用。不确定它是否能在 Mac 上运行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)