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



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

我已经将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

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

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

这个servlet过滤器方法是否是处理这个编码问题的错误方法?

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

设置WebLogic服务器系统属性

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

-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文档

最新更新