Servlet系列之(3)请求参数中文乱码

2017-08-20  本文已影响18人  Ethan_Walker

POST请求乱码

解决方式: 在调用获取参数值方法前设置
request.setCharacterEncoding("utf-8");

GET请求乱码

乱码原因:
中文 -> UTF-8编码提交->二进制--> 服务器后台获取到数据以 ISO-8859-1解码 (乱码)

逆向解决思路:
将以ISO-8859-1解码得到的乱码 ->以 ISO-8859-1 编码-> 二进制-> 以UTF-8解码

  1. 解决方案一: 修改tomcat/conf/server.xml
    前提: 必须有修改tomcat服务器配置文件权限

      <Connector port="80" protocol="HTTP/1.1"                               
          connectionTimeout="20000" redirectPort="8443"   URIEncoding="utf-8"/>
    
  2. 解决方案二:逆向编解码

      username = request.getParameter("username");
      username = URLEncoder.encode(username, "ISO8859-1");
      username = URLDecoder.decode(username, "utf-8");
    
  3. 解决方案三:简写的方式(推荐使用)

        username = new String(username.getBytes("ISO-8859-1"),"utf-8");
    
上一篇下一篇

猜你喜欢

热点阅读