springMVC获取表单数据中文乱码解决方法

最近学习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";

        }

该方法实际上并不实用,但我从网上找的种种方法都没有解决,只好用这种比较麻烦的方式

 

测试结果截图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值