美文网首页
Servlet系列之(3)请求参数中文乱码

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

作者: Ethan_Walker | 来源:发表于2017-08-20 22:50 被阅读18次

    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");
      

    相关文章

      网友评论

          本文标题:Servlet系列之(3)请求参数中文乱码

          本文链接:https://www.haomeiwen.com/subject/teeqdxtx.html