zoukankan      html  css  js  c++  java
  • maven工程下get的URI中带中文名称乱码解决

    在用maven做项目时,出现了乱码问题:

    http://localhost:8086/search.html?keyword=手机

    经过检查发现已经在web.xml配置request等字符编码

      <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>
          <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>

    上面相当于:

    request.setCharacterEncoding("UTF-8");    
    response.setCharacterEncoding("UTF-8"); 

    但乱码依旧,经过百度确认,原来是因为tomcat的默认编码是:ISO-8859-1

    所以需要在server.xml中更改tomcat的编码:

     <Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

    所以maven工程需要增加相应插件,但这个我不懂,于是采用如下方法进行:

    public String search(@RequestParam(value="keyword")String keyword, 
                @RequestParam(defaultValue="1") Integer page,Model model) throws Exception{
            //解决get请求URL传值时中文乱码问题
             keyword = new String(keyword.getBytes("ISO-8859-1"),"utf-8");
          .....
    
    }

    先把字符转化为字节流,再转为相应的字符串。

  • 相关阅读:
    Linux基础-yum软件包管理
    Linux基础-rpm软件包管理
    Linux基础-简单的进程操作
    Linux基础-free窥内存-dd探硬盘
    Linux基础-swap交换分区
    Linux基础-软硬连接Block概念
    Linux基础操作-分区概念
    Linux基础-vim编辑器
    Linux基础操作命令-打包压缩
    RandomAccessFile 文件读写中文乱码解决方案!
  • 原文地址:https://www.cnblogs.com/limingxian537423/p/7619936.html
Copyright © 2011-2022 走看看