我们有一个奇怪的问题,正确显示UTF-8字符的网络应用程序,这是事实:
但是,每当我们的开发人员重新部署我们的webapp模块,或者当我们重新启动tomcat时,所有UTF-8字符都显示为?????在我们的浏览器..
我们必须正确地重启Tomcat(等待Tomcat完全停止,然后重新启动tomcat),虽然很烦人,但确实解决了问题。
之前有没有人遇到类似的问题,谢谢你的建议。
答案 0 :(得分:12)
如果您确定内容为UTF-8,则可以使用。在catalina.sh文件中设置此行(例如,在巨大的初始注释之后,在导出之前很久):
export CATALINA_OPTS="$CATALINA_OPTS -Dfile.encoding=UTF-8"
此外,我们不知道您是否正在使用数据库中的数据。检查你是否正确地把它放在那里。
答案 1 :(得分:0)
因此,JSP页面编码很疯狂。如果您已经按照您找到正确方法的文章进行了操作,那么这隐含意味着
<%@page pageEncoding="UTF-8" %>
破了。
第一步是验证已部署文件夹中的具体JSP文件(如果它仍然存在)。下一步是验证appserver工作文件夹中的已编译.java
文件是否至少包含try
块开头的以下行:
response.setContentType("text/html;charset=UTF-8");
最后一步是验证获得的响应标头。这取决于webbrowser如何查看它们。在标准的Firefox环境中,您可以通过右键单击页面&gt;找到它。 查看页面信息。 编码必须提及UTF-8
。同样在Firefox中,在顶部菜单栏中,您可以通过查看&gt;检查和播放字符编码。 字符编码。
收集完所有这些信息后,您必须能够确定根本原因。
编辑:作为附注,Ubuntu开箱即用,带有 buggy GNU JDK / JRE。我强烈建议摆脱它并安装Sun's own JDK/JRE。你永远不会知道,我已经看到许多其他“无法解释的”问题/错误已经通过用更坚固的JDK / JRE替换JDK / JRE来解决。