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"/>
  • 相关阅读:
    结巴分词
    Python如何将RGB图像转换为Pytho灰度图像?
    多套方案来提高python web框架的并发处理能力
    python使用web.py开发httpserver,解决post请求跨域问题
    关于socket知识整理
    SQL注入实验
    什么是内存(一):存储器层次结构
    内存剖析2
    JDBC的事务处理 JDBC事务处理 JDBC教程
    SQL注入绕过的技巧总结
  • 原文地址:https://www.cnblogs.com/fengzifengfeng/p/11878404.html
Copyright © 2011-2022 走看看