zoukankan      html  css  js  c++  java
  • SpringMVC项目中中文字符乱码问题及解决办法总结(非专业最优解决办法) -- ajax传值乱码; request.getParameter()乱码;

    情况一: ajax中传值时是乱码(后台可以获取到中文字符,但用@ResponseBody返回时前台为乱码)


    情况二: Controller 中 request.getParameter()获取到的是乱码


    @RequestMapping(params = "method=submit")
        public String submit(HttpServletRequest request, ModelMap modelMap) throws Exception{
            String uname = request.getParameter("uname");
                    .
                    .
                    .
            return "index_view";
            
    }

    Request默认编码是iso-8859-1,而前台是utf-8编码,导致获取值输出发现是乱码。从网上找了很多种办法,以下方法都没有生效

    1. 添加filter

    jsp页面中文输入,到controller乱码,这时候需要设置的是在web.xml文件中添加一个编码的过滤器(filter)将编码统一为UTF-8,代码如下:

    Web.xml配置文件:

    <filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>utf-8</param-value>
    </init-param>
    </filter>
    <filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>

    这里需要注意的是,最好把这段代码放在web.xml中开头的位置,因为拦截有顺序,如果放在后面的话容易拦截不到。

    2. 设置request字符集

    往往从前台传入到对应的controller或者是action之后出现乱码,讲讲我一般的思路是先打印request本身默认的字符集

     System.out.println(request.getCharacterEncoding());

    接着按照情况,如果打印的不是所需要的字符集则设置相应字符集即可

     request.setCharacterEncoding("UTF-8");

    有效解决办法: 获取时从iso-8859-1转化成utf-8格式。(但此方法较为麻烦)

    @RequestMapping(params = "method=submit")
        public String submit(HttpServletRequest request, ModelMap modelMap) throws Exception{
            String uname = new String((request.getParameter("uname")).getBytes("iso-8859-1"),"utf-8");
                    .
                    .
                    .
            return "index_view";
            
    }

    情况三:


  • 相关阅读:
    菜鸟笔记 -- Chapter 6.2.6 内部类
    菜鸟笔记 -- Chapter 6 面向对象
    菜鸟笔记 -- Chapter 6.1 面向对象概述
    菜鸟笔记 -- Chapter 4.7 代码注释与编码规范
    菜鸟笔记 -- Chapter 4 Java语言基础
    小白袍 -- Chapter 1.4.1.1 URL编码的理论解读
    小白袍 -- Chapter 1.1 避不开的编解码
    小白袍 -- Chapter 1 Java中的Encode与Decode
    菜鸟崛起 Ajax
    软件测试
  • 原文地址:https://www.cnblogs.com/AndrewXu/p/5494973.html
Copyright © 2011-2022 走看看