如何停止在 Railo 应用程序的 HTTP 标头中设置字符集?

Guy*_*y C 0 apache coldfusion railo

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

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

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

小智 5

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

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

您需要从头开始重写所有标头,但这会清除恶意字符集标头。

<cfset objResponse = GetPageContext().getResponse()>
<cfset objResponse.reset()>
Run Code Online (Sandbox Code Playgroud)

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

希望对某人有帮助。