今天在做一个小项目时,遇到了form表单提交到数据库中的中文乱码情况。
经过打断点排查原因,发现是 在执行存数据库操作之前就已经乱码了。
经过一番检查,发现了问题所在,特此记录下。
form在前端以post方式提交
设置 request对象的编码 即可。
注:客户端数据是以什么编码格式提交的,就设置什么编码格式。
如我在前端设置为 UTF-8编码,所以设置如下:
request.setCharacterEncoding("UTF-8");
form在前端以get方式提交
此时,再设置request对象的编码已经无效了,所以可以如下;
String realName = new String(request.getParameter("realName").Bytes("iso-8859-1"),"utf-8");