我有一个应用程序已经在带有 Tomcat 6/Java 6(没有编码错误)的服务器上运行。
应用程序正在对 URL 执行 GET 操作并接收包含信息的 XML 作为响应。
信息显示在带有 Tapestry 的页面中(5.0.18)。
目标是升级到 Java 7/Tomcat 7。 我在这个新应用程序上遇到编码问题。
在我的 XML 中,我有这样的字段:
<email>mickaël@xxx.com</email>
在我的 Java 调试中我有这个:
email=mickaël@xxx.com
我正在这样显示电子邮件:
${message:user-email-field-label}: ${Profile?.email}
最后,在我看来,我有:
Mes coordonnées : mickaël
所以,我在本地安装了 Java 7/Tomcat 7。问题仍然存在。 我降级到 Java 6/Tomcat 6,问题仍然存在(并且它不在正在运行的应用程序中)。
关于编码:
- 我所有的 .properties 都是用 UTF-8 编码的
- 我页面的响应 header 是:Content-Type:text/html;charset=UTF-8
- 我尝试将 -Dfile.encoding=UTF-8 添加到我的 JVM
- 我试过:Tapestry: character encoding issue
- 我试过:http://wiki.apache.org/tapestry/Tapestry5Utf8Encoding
但是,看起来我的电子邮件是用 ISO-8859 解释的。 .properties 中的标题也被误解了。 Tapestry 未显示的我的数据没有问题。 有人有想法吗?
最佳答案
编码问题有多种潜在原因。您似乎没有提到 html header ,因此它可能就像将以下 header 添加到您的 HTML 以告诉您的浏览器使用什么一样简单。
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
附带说明一下,您的 Tapestry 版本很旧。发布于 december 2008 .您可能还想升级到更高版本。
关于java - Tapestry 的 UTF-8 编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28414399/