• spring中文乱码问题


     第一:code

    @RequestMapping(value = "/query/{keyword}", method = RequestMethod.GET, produces = "text/html;charset=UTF-8")
    public String query(@PathVariable String keyword) {

    }

    第二:tomcat server.xml 中
    <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>

    注意:如果使用eclipse启动tomcat时,需要将workspace下面 的server.xml 中的Connector也添加URIEncoding="UTF-8"

    参考: http://www.cnblogs.com/zhonghan/p/3339150.html

    =======================================

        <filter>  
         <filter-name>CharacterEncodingFilter</filter-name>  
          <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
          <init-param>  
              <param-name>encoding</param-name>  
              <param-value>GBK</param-value>  
          </init-param>  
          <init-param>  <!--强制进行转换-->  
    <param-name> forceEncoding</param-name>  
    <param-value> true </param-value>  
        </init-param> 
      </filter>  
      <filter-mapping>  
         <filter-name>CharacterEncodingFilter</filter-name>  
         <url-pattern>/*</url-pattern>  
     </filter-mapping>  

    如果不加强制转化参数,无效

    参考

    http://blog.csdn.net/lufeng20/article/details/7311959

    ===================================

    今天搭建spring3 mvc框架的时候,发现居然又出现了乱码(万恶的iso编码啊),想起之前解决post提交乱

     

          package com.mocha.servlet;  
          
        import javax.servlet.ServletConfig;  
        import javax.servlet.ServletException;  
        import javax.servlet.http.HttpServletRequest;  
        import javax.servlet.http.HttpServletResponse;  
        import org.springframework.web.servlet.DispatcherServlet;  
          
        public class EncodingDispatcherServlet extends DispatcherServlet {  
         private String encoding;  
          
         public void init(ServletConfig config) throws ServletException {  
          encoding = config.getInitParameter("encoding");  
          super.init(config);  
         }  
          
         protected void doService(HttpServletRequest request, HttpServletResponse response) throws Exception {  
          request.setCharacterEncoding(encoding);  
          super.doService(request, response);  
         }  
        }   

     

    然后将web.xml中的配置改为:

     <servlet>  
     <servlet-name>spring</servlet-name>  
     <servlet-class>com.mocha.servlet.EncodingDispatcherServlet</servlet-class>  
     <load-on-startup>1</load-on-startup>  
     <init-param>  
      <param-name>encoding</param-name>  
      <param-value>UTF-8</param-value>  
     </init-param>  
    </servlet>  
     
    <servlet-mapping>  
     <servlet-name>spring</servlet-name>  
     <url-pattern>*.do</url-pattern>  
    </servlet-mapping>  

     

     OK,乱码消失,现在总结一下乱码的问题,get方法乱码解决方法一般是将tomcat中conf目录下server.xml文件中加入

        <Connector port="8080" maxHttpHeaderSize="8192"    
                       maxThreads="150" minSpareThreads="25" maxSpareThreads="75"    
                       enableLookups="false" redirectPort="8443" acceptCount="100"    
                       connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />   

     

    而post方法解决乱码是设置一个专门处理编码转换的filter或者servlet。

     

    http://blog.csdn.net/nivana999/article/details/18557179

     

     

  • 相关阅读:
    Tengine 常用模块使用介绍
    linux curl 命令详解,以及实例
    win7或win2008 R2 被远程登录日志记录 系统日志
    PHP 弹出文件下载
    JavaScript 的性能优化:加载和执行
    网店转化率太低,你该怎么办?
    rpm安装PostgreSQL
    failed to load selinux policy freezing
    Scanner类nextInt方法的使用注意点
    tomcat支持https的历程
  • 原文地址:https://www.cnblogs.com/zhao1949/p/4838249.html
Copyright © 2020-2023  润新知