好的,我花了
三
七個小時的谷歌搜索和測試,我放棄了,我不得不尋求幫助。
我曾經在Linux中開發過,一切都很簡單,現在我使用Windows,並且像設置正確的語言環境這樣簡單的東西不起作用。
與JPA的Servlet字符編碼問題
我創建了簡單的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Å¡而不是獅子座。我使用WildFly 8.0RC1,Windows 8 czech,firefox。
我已經試過什麼:
- request.setCharacterEncoding( 「UTF-8」);先讀取 參數
- 過濾器使用request.setCharacterEncoding(「UTF-8」);
- JVM屬性-Dfile.encoding = UTF-8
- 刪除標準JEE從戰爭
- 修復戰爭包裝
- 分割項目,WEB和EJB模塊
當JPA實體/ DAO堆疊罐被部署,然後變音符被破壞。如果我從servlet註釋掉實體並從戰爭中刪除JPA實體(目前從WEB-INF/lib中刪除OAuthLoginEJB.jar),那麼我會收到正確的編碼。如果我添加了這個EJB,那麼它又會失敗。它是JBoss/WildFly的bug嗎?
我可以提供完整的來源:https://drive.google.com/file/d/0B-adlc5KThQDWTdYOEwxOUpTVEU/edit?usp=sharing 它已準備好運行,您甚至不需要鍵入捷克字母,因爲它們已預先填好。謝謝
不知道它的大小寫,但是你的項目配置爲在IDE中使用UTF-8? – watery
http://stackoverflow.com/questions/8391675/utf-8-encoding-a-servlet-form-submission-with-tomcat –
想法顯示文件是UTF8編碼 –