现在搜索了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")
但它总是在数据库中结束,如下所示:�?��??
(输入:收藏
)
非常感谢有关此主题的任何帮助。
答案 0 :(得分:6)
在Tomcat server.xml
中,为URIEncoding="UTF-8"
添加Connector
属性,如下所示:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
指定字符编码 用于解码后的URI字节 %xx解码URL。如果不 指定,将使用ISO-8859-1。
可以找到有用(略微相关)的SO帖子here。
答案 1 :(得分:0)
在java中插入数据库之前,您是否看过调试器中字符串的样子?如果它没有混合,那么它是数据库的导入功能。您在那里使用哪种wprapper或实用程序?