所以这是我的HTML代码:
<!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);
问题是,如果我在textarea中键入“é”,结果将打印为“?”。我可能是一个编码问题,但我不能使它工作。我试图在我的jsp页面中将字符编码更改为UTF-8,然后将以下行添加到我的servlet
request.setCharacterEncoding("UTF-8");
但它没有改变任何东西。我该怎么办 ?同样,我是JSP / Java EE的初学者。
答案 0 :(得分:1)
这是一系列的4个步骤
首先,您必须配置您的网络服务器。
然后,您必须强制您的Web应用程序对所有请求/响应使用UTF-8编码。
第三,你必须使用JSP页面编码(你已经做过)
最后你必须使用HMTL-meta标签
以下是适合您的完美文章How to get UTF-8 working in Java webapps?
答案 1 :(得分:1)
好的,我终于开始工作了。我尝试了一切,但仍然有?而不是é,我想它可能是我的服务器故障,因为我不使用Tomcat或其他任何东西,但是嵌入式Jetty,配置不是那么清楚。
所以我使用JavaScript来发送正确编码的字符串:
send( encodeURIComponent(txtarea.value) );
在服务器端,我用这个小函数解码它:
java.net.URLDecoder.decode(request.getParameter("content"), "utf-8");