0

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

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

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

4

2 回答 2

4

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

清除缓冲区中存在的任何数据以及状态代码和标头

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

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

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

希望对某人有所帮助。

于 2011-06-08T04:45:55.130 回答
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

于 2009-05-07T12:39:08.177 回答