如何在servlet中处理UTF-8编码的字符串

时间:2011-06-23 11:25:12

标签: java jsp tomcat servlets utf-8

现在搜索了4个小时后,我不得不放弃并问你们。 我有一个非常简单的表单,它将接受输入和操作,将其写入我的Oracle DB(支持UTF-8)。

<form action="test.jsp" method='GET' accept-charset="UTF-8">
    <label for='NAME'>Name</label><input type="text" id="NAME" name="NAME"/>
    <button type="submit">Submit</button> 
 </form>

我想要做的就是能够接受é等字符的表单,并在不更改编码的情况下存储它们。

我已尝试(和组合)选项,例如设置

request.setCharacterEncoding("UTF-8");

或使用编码参数构建新的String:

new String(request.getParameter("NAME").getBytes(), "UTF-8")

但它总是在数据库中结束,如下所示:�?��??(输入:收藏

非常感谢有关此主题的任何帮助。

2 个答案:

答案 0 :(得分:6)

在Tomcat server.xml中,为URIEncoding="UTF-8"添加Connector属性,如下所示:

<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="UTF-8"/>

documentation州:

  

指定字符编码   用于解码后的URI字节   %xx解码URL。如果不   指定,将使用ISO-8859-1。

可以找到有用(略微相关)的SO帖子here

答案 1 :(得分:0)

在java中插入数据库之前,您是否看过调试器中字符串的样子?如果它没有混合,那么它是数据库的导入功能。您在那里使用哪种wprapper或实用程序?