【发布时间】:2014-01-30 20:11:32
【问题描述】:
好的,我已经花了 三个 七个小时的谷歌搜索和测试,我放弃了,我不得不寻求帮助。 我以前在 Linux 上开发,一切都很简单,现在我使用 windows,设置正确的语言环境这样简单的事情不起作用。
我用表单创建了简单的 JSP:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<form action="save-user" method="post">
Name: <input type="text" name="name"><br>
Email: <input type="text" name="email"><br>
<input type="submit" value="Save">
</form>
和 Servlet:
String name = request.getParameter("name");
String email = request.getParameter("email");
我收到的是 LeoÅ¡ 而不是 Leoš。我使用 WildFly 8.0RC1、Windows 8 czech、firefox。
我已经尝试过的:
- request.setCharacterEncoding("UTF-8");在先阅读之前 参数
- 使用 request.setCharacterEncoding("UTF-8"); 过滤
- JVM 属性 -Dfile.encoding=UTF-8
- 从战争中移除标准 JEE 堆栈 jar
- 修复战争包装
- 将项目拆分为 WEB 和 EJB 模块
部署 JPA 实体/DAO 时,变音符号会被破坏。如果我从 servlet 中注释掉实体并从战争中删除 JPA 实体(当前从 WEB-INF/lib 中删除 OAuthLoginEJB.jar),那么我会收到正确的编码。如果我重新添加这个 EJB,那么它会再次失败。是 JBoss / WildFly 错误吗?
我可以提供完整的来源:https://drive.google.com/file/d/0B-adlc5KThQDWTdYOEwxOUpTVEU/edit?usp=sharing 它已准备好运行,您甚至不需要输入捷克字母,因为它们已预先填写。谢谢
【问题讨论】:
-
不确定是否是这种情况,但您的项目是否配置为在 IDE 中使用 UTF-8?
-
想法显示文件是UTF8编码的
-
@SotiriosDelimanolis 我认为情况并非如此。有一个过滤器,我觉得很有趣,request.getCharacterEncoding() == null 就在 request.setCharacterEncoding("UTF-8") 之后。它似乎没有任何效果。我想我会将它部署到不同的容器中以验证它不是 Wildfly 错误。
-
你遇到WFLY-2531了吗?
标签: java servlets character-encoding cdi wildfly