如何在Railo应用程序的HTTP标头中设置charset?

时间:2009-05-07 08:40:57

标签: apache coldfusion railo

我正在使用Railo 3.0作为Web应用程序(设置与this优秀指南完全相同)。我有一个CFM页面,使用cfcontent标记提供一些旧的HTML文件。此内容具有各种字符集(均在HTML中定义为元标记)。问题是我的所有CFM页面都是通过HTTP响应头中设置的UTF-8发出的,这将覆盖HTML中定义的任何内容。因此,页面在浏览器中显示不正确。

如何停止在CFM页面的HTTP标头中发送字符集?

注意: 我已经从默认的Apache配置中删除了AddDefaultCharset条目,这意味着现在提供的静态HTML页面在标题中没有任何字符集,但这对CFM页面没有帮助 - AddDefaultCharset is bad, bad, bad

2 个答案:

答案 0 :(得分:4)

我知道这是一个旧线程,但我最近遇到了类似的问题,并使用底层的java servlet上下文来克服它。如果你掌握了ServletResponse,你可以调用.reset(),根据Java文档的说法:

  

清除缓冲区中存在的所有数据以及状态码和标题

您需要从头开始重写所有标头,但它会清除流氓charset标头。

<cfset objResponse = GetPageContext().getResponse()>
<cfset objResponse.reset()>

这适用于Railo。在CF(Adobe)中,我认为您需要两次调用getResponse()来获取相应的响应对象。

希望能有所帮助。

答案 1 :(得分:0)

你想把这些页面发送出来的是什么字符集?你可以通过以下两种方式强制页面的字符集:

<cfprocessingdirective pageEncoding="windows-1252">

http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=Tags_p-q_13.html#2962107

<cfheader name="charset" value="windows-1252">

http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=Tags_g-h_07.html#3989067