在Apache中动态生成将生成的UTF-8内容转换为ISO 8859-1

时间:2014-07-14 09:48:55

标签: php apache encoding utf-8 iso-8859-1

我们在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轻松打开。

1 个答案:

答案 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