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

tan*_*rli 2 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>
Run Code Online (Sandbox Code Playgroud)

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

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

request.setCharacterEncoding("UTF-8");

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

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

但它总是在数据库中像这样结束:??????(输入??)

任何有关该主题的帮助将不胜感激.

Buh*_*ndi 6

在Tomcat中server.xml,URIEncoding="UTF-8"为您的Connector类似添加一个属性:

<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="UTF-8"/>
Run Code Online (Sandbox Code Playgroud)

文件规定:

这指定在%xx解码URL之后用于解码URI字节的字符编码.如果未指定,将使用ISO-8859-1.

一个有用的(轻微相关)SO后,可以发现在这里.