0

我有一个从 weblogic 8 服务器部署的角度应用程序。但是,在 UAT 中,其中一个 html 文件存在编码问题。我们有ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝ一个用于验证的 ng 模式,但是当我们使用开发人员工具查看它时,其中一些被解释为 □?。

我已将 html 文件保存为 UTF-8 并运行 Jenkins。作为我们构建过程的一部分,运行一个 grunt 命令,它将我们所有的 js 和 htlm 组合到一个文件中。对该文件的目视检查表明编码仍然很好。生成的.js文件是UTF-8,没有□?符号。

我认为 UAT 中的浏览器正在以 ISO-8895 编码而不是 UTF-8 格式读取文件。我找到了解决方案。通过将内容类型 http 标头设置为"text/html; charset=utf-8"I 可以强制浏览器使用正确的编码。我在 weblogic 8 中找不到配置来设置此标头,因此我制作了以下 servlet 过滤器:

https://github.com/pacurtin/HttpHeaderFilterServlet/blob/master/src/com/paddycurtin/HttpHeaderFilter.java

这适用于 tomcat 和 weblogic 中的 .do struts 文件,但不适用于 .html 文件。通过代码进行调试显示标头已设置为,"text/html; charset=utf-8"但随后 weblogic 将其重置为"text/html".

有没有办法在 weblogic 8 中设置内容类型的 http 标头?或者一种阻止它覆盖"text/html; charset=utf-8"的方法"text/html"

这个 servlet 过滤器方法是解决这个编码问题的错误方法吗?

4

1 回答 1

0

以下是有关如何在 WebLogic 服务器中进行编码的步骤

设置 WebLogic Server 系统属性

您还可以通过将系统属性 weblogic.webservice.i18n.charset 设置为字符集的名称,为部署在 WebLogic Server 实例上的所有已部署 WebLogic Web 服务指定字符集。在启动 WebLogic Server 实例的脚本中设置此系统属性:

-Dweblogic.webservice.i18n.charset=utf-8

这里有更多如何在其他服务器中默认设置UTF-8 配置 ,这里是关于如何在 WebLogic 的 WebLogic文档中进行国际化的文档,希望对您有所帮助。好吧,如果脚本不起作用,请尝试将此添加到您的weblogic.xml

<charset-params> 
    <input-charset> 
        <resource-path>/*</resource-path> 
        <java-charset-name>UTF-8</java-charset-name> 
    </input-charset> 
</charset-params>

检查此文档以获取weblogic.xml

weblogic.xml 文档

于 2017-01-05T13:05:23.533 回答