在Weblogic 8中设置内容类型的http标头以修复角度html编码问题

时间:2017-01-05 12:50:20

标签: java encoding http-headers weblogic weblogic8.x

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

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

我认为UAT中的浏览器正在将文件读取为ISO-8895编码而不是UTF-8。我找到了解决方案。通过将内容类型的http标头设置为"text/html; charset=utf-8",我可以强制浏览器使用正确的编码。我在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过滤器是否采用了错误的方法来解决这个编码问题?

1 个答案:

答案 0 :(得分:0)

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

  

设置WebLogic Server系统属性

     

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

weblogic.xml

以下是更多如何将其作为默认设置放在其他服务器Optional.map中 以下是WebLogic中如何进行国际化的文档UTF-8 Configuration我希望这会有所帮助。如果脚本不起作用,请尝试将其添加到<charset-params> <input-charset> <resource-path>/*</resource-path> <java-charset-name>UTF-8</java-charset-name> </input-charset> </charset-params>

weblogic.xml

检查此文档以了解data-target

的配置

Documentation of Weblogic