最近学习springMVC时遇到了获取表单中文数据乱码问题,在网络上查了一圈,什么设置request.setCharacterEncoding("utf-8"),什么添加过滤器,都试过了全部无效(没有尝试修改Tomcat服务器的编码,因为感觉这个办法并不好),不知道是不是我的IDE有什么问题,后来我自己琢磨了一下,其实完全可以利用刚刚在springMVC中学到的知识解决(使用@RequestParam获取乱码的中文属性值,然后对其进行转码,重新封装给对应的对象在进行保存等操作),解决方法如下,供大家参考:
/**
* 插入员工信息的方法
* @param empName
* @param employee
* @return
* @throws UnsupportedEncodingException
*/
@RequestMapping(value="/insertEmp",method=RequestMethod.POST)
private String insertEmp(@RequestParam(value="empName") String empName,
@RequestParam(value="sex") String sex,Employee employee) throws UnsupportedEncodingException{
//转码
String empNameNew = new String(empName.getBytes("iso-8859-1"),"utf-8");
//打印获取到的相关插入的员工的信息
System.out.println("插入的员工姓名为:"+empName);
System.out.println("转码后的姓名为:"+empNameNew);
//转码
String sexNew = new String(sex.getBytes("iso-8859-1"),"utf-8");
//打印转码后的属性
System.out.println("插入的员工性别为:"+sex);
System.out.println("转码后的性别为:"+sexNew);
//重新封装相关转码后的属性
employee.setEmpName(empNameNew);
employee.setSex(sexNew);
//保存
employeeDao.save(employee);
return "redirect:/listEmp";
}
该方法实际上并不实用,但我从网上找的种种方法都没有解决,只好用这种比较麻烦的方式
测试结果截图: