2012-10-18 356 views
0

我使用一個小的HTML表單來向tomcat服務器(servlet)發送請求。如果我使用「GET」請求,我實現的「SetCharacterEncodingFilter」工作得很好,結果顯示我所有的德語「元音變音」。 但是,如果使用POST請求(不幸的是我必須這樣做),所有的「變音」的樣子很滑稽;-)SetCharacterEncodingFilter只適用於GET請求

HTML部分看起來是這樣的:

<form id="form1" name="form1" method="POST" 
accept-charset="uft-8" 
action="http://localhost:8080/foo"> 
<p> 
<label for="textfield"></label> 
<textarea name="text" id="text" 
cols="45" rows="5"></textarea> 
</p> 
</form> 

該servlet部分:

protected void processRequest(HttpServletRequest request, 
HttpServletResponse response) 
throws ServletException, IOException, JSONException, Exception { 

response.setContentType("text/html;charset=UTF-8"); 

String querytext = request.getParameter("text"); 

... 
... 

任何人都可以幫忙嗎?

在此先感謝!

回答

0

不要在響應中設置字符集。這對客戶向您發送的內容沒有影響。它只會影響你發回給客戶的東西。

嘗試設置的要求的字符集之前相反獲取參數:

request.setCharacterEncoding("UTF-8") // or ISO-8859-1, you have to check 
String querytext = request.getParameter("text"); 

你的字符集取決於最初發送到客戶端的HTTP頭,所以瀏覽器通常兌現這一點,並使用相同的POST的字符集。

+0

謝謝,它的工作原理:-) – user32168

相關問題