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