用了POST方式提交的表单,也设置了编码方式
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
结果数据库里存入的还是乱码..
解决此解决的正确思路应该是:
1.找到乱码产生的原因,是服务器端获取表单数据时,编码方式错误导致的乱码还是数据库编码设置导致的乱码。
2.如果是前者,请在编码时将表单数据转码,如果是后者,那么应该修改数据库编码或者修改将要插入数据的编码。
查一下数据库存入字段字符编码
可以加断点,debug
调试一下,如果不会用那就用sysout
吧。
先确定是从页面传到到后台时乱码(90%),还是从后台到数据库乱码了(10%)
提供一个笨办法,解决从页面到后台乱码问题的
String param = new String(query.getBytes("ISO-8859-1"),"UTF-8");
另外说个我曾经见到的一个奇怪的问题。
我请求用SpringMVC映射POST的请求是/upload
结果上传文件提交后,服务器返回了302
将请求重定向到了/upload/
,而重定向的结果就是改为GET
请求了。
你查看一下是不是也转发成GET
请求了。
如果是,那么get请求是无法通过程序指定编码的,除非你改tomcat配置。