zoukankan      html  css  js  c++  java
  • SpringMVC Controller 接收页面传递的中文参数出现乱码

      在Controller中接收到的POST参数如果是中文的话,显示为乱码。已知客户端传过来时编码为UTF-8。

    问题产生分析:

    spring MVC中默认的编码格式为“ISO-8859-1”,因此造成乱码。

    简单的解决方式:

    New String(request.getParameter("xxx").getBytes("iso-8859-1"),"utf-8")

    最好的解决方式:

    在web.xml中配置Spring字符过滤器,添加:

    <!-- spring字符编码过滤器start-->
    <filter>
      <!--① Spring 编码过滤器 -->
      <filter-name>encodingFilter</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>
      <!--③ 强制进行编码转换 -->
      <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
      </init-param>
    </filter>
    <!-- ② 过滤器的匹配 URL -->
    <filter-mapping>
      <filter-name>encodingFilter</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>
    <!-- spring字符编码过滤器end-->

    GET方法接收到中文乱码在tomcat的server.xml添加URIEncoding="utf-8"

    <Connector port="8080"
    protocol="HTTP/1.1"

    connectionTimeout="20000"
    redirectPort="8443" />
    1. 变更为: 
      <Connector port="8080"
      protocol="HTTP/1.1" 
      connectionTimeout="20000"
      redirectPort="8443"
      URIEncoding="utf-8"/>
  • 相关阅读:
    冒泡排序
    选择排序
    1069 微博转发抽奖 (20 分)
    动态规划-石子合并
    动态规划-最长公共子序列
    动态规划-最长上升子序列
    动态规划-数字三角形
    动态规划-分组背包问题
    动态规划-多重背包问题
    动态规划-完全背包问题
  • 原文地址:https://www.cnblogs.com/fengzifengfeng/p/11878404.html
Copyright © 2011-2022 走看看