一尘不染

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

tomcat

现在已经连续搜索了四个小时,我不得不放弃,问你们。我有一个非常简单的表格,它将接受输入并采取行动,将其写入我的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")

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

在这个问题上的任何帮助将不胜感激。


阅读 583

收藏
2020-06-16

共1个答案

一尘不染

在Tomcat中server.xml,像这样添加URIEncoding="UTF-8"属性Connector

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

文档指出:

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

一个有用的(有点相关)的​​SO帖子可以在这里找到。

2020-06-16