2012-08-31 48 views
0

因此,這裏是我的html代碼:如何使用POST方法從textarea中獲取servlet中的特殊字符?

<!doctype html> 
<html lang="fr"> 
    ... 
    <form action="servlet" method="post"> 
    <textarea name="content" rows="30" cols="80" spellcheck="false"></textarea> 
    <input type="submit" value="SEND" /> 
    </form> 
    ... 
</html> 

然後servlet的部分

String content = request.getParameter("content"); 
System.out.println(content); 

而問題是,如果我在文本區域輸入「é」,結果被打印成「? 」。我可能是一個編碼問題,但我不能讓它工作。我試圖改變字符編碼成UTF-8在我的jsp頁面,然後將下面的行添加到我的servlet

request.setCharacterEncoding("UTF-8"); 

但它不會改變任何東西。我該怎麼辦 ?再次,我是JSP/Java EE的初學者。

回答

1

好吧,我終於得到了完美的文章它工作。我嘗試了一切,但仍然有?而不是é,我想這可能是我的服務器故障,因爲我不使用Tomcat或除了嵌入式Jetty之外的其他配置,這種配置並不明確。

所以我使用JavaScript來送我的字符串編碼正確:

send(encodeURIComponent(txtarea.value)); 

而在服務器端我用這個小功能對其進行解碼:

java.net.URLDecoder.decode(request.getParameter("content"), "utf-8"); 
1

這是一系列的4個步驟

首先你必須配置你的web服務器。

然後,您必須強制您的Web應用程序對所有請求/響應使用UTF-8編碼。

第三,你必須使用JSP頁面編碼(你已經這樣做了)

和最後你必須使用HMTL-meta標籤

這裏是你How to get UTF-8 working in Java webapps?

相關問題