我们在Apache上运行了一个PHP应用程序,它生成了用Excel打开的CSV文件;内容以UTF-8编码。但是,Excel存在问题,它无法识别字符编码并显示恼人的'¶'而不是'ö',例如,如this question中所述。
现在,由于无法将Excel配置为正确识别UTF-8编码,并且this answer中所述的“外部数据导入”打开文件对我们来说是不可接受的,我想也许吧是否可以配置Apache使用某种过滤器将UTF-8编码的响应转换为ISO 8859-1?在这种情况下,我不必更改任何PHP脚本 - 它们将继续生成UTF-8编码的内容 - 我只需要配置Apache将其中一些输出转换为ISO 8859-1即时,以便生成的文件可以使用Excel轻松打开。
答案 0 :(得分:1)
实际上解决了这个问题:
# beginning of file
function encode($buffer) {
return iconv("UTF-8", "ISO-8859-1", $buffer);
}
ob_start("encode");
# content generated here
ob_end_flush();
# end of file