我从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过滤器:
这适用于tomcat和weblogic中的.do struts文件,但不适用于.html文件。通过代码进行调试显示标头设置为"text/html; charset=utf-8"
,但随后weblogic将其重置为"text/html"
。
有没有办法在weblogic 8中设置内容类型的http标头?或者用"text/html; charset=utf-8"
来阻止它覆盖"text/html"
的方法吗?
这个servlet过滤器是否采用了错误的方法来解决这个编码问题?
答案 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