zoukankan      html  css  js  c++  java
  • servlet request、response的中文乱码问题

    一、request

      1、get请求

        get请求的参数是在请求行中的,浏览器使用utf-8进行编码,数据的编码一般为UTF-8,而url请求行的默认编码为ISO-8859-1,一般来说有以下方式可以解决中文乱码问题。

        1.1、简单的反向二次编码 :第一次 byte[] val = request.getParameter("name").getBytes("ISO-8859-1"); 第二次 String param = new String(val, "UTF-8");

        1.2、修改容器配置,以tomcat为例,修改tomcat/conf/server.xml 

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

      2、post请求

        post请求的参数是在请求体中的,只需要一次的utf-8编解码就可以实现。一般都是在doPost方法中,第一句就是添加:request.setCharacterEncoding("UTF-8");

    二、response

      response向客户端浏览器输出数据,可以使用javax.servletServletOutputStream或者java.io.PrintWriter

      1、servletServletOutputStream

       使用方法 : response.getoutputStream().write("我是中文字符串".getBytes("UTF-8"));

      2、PrintWriter

       使用方法 :

           2.1、response.setCharacterEncoding("UTF-8");

              response.getWrite().print("我是中文字符串");

           2.2、通知tomcat容器和浏览器使用同一编码格式:response.setContentType("text/html;charset=utf-8");

      

  • 相关阅读:
    Day01-基础加强笔记
    CS Academy Round#2 E.Matrix Coloring
    AtCoder ABC198 F
    NERC2021 B. Button Lock
    AtCoder ARC115 E
    NOI Online 2021 Round 1 提高组 愤怒的小 N
    洛谷 P6918 [ICPC2016 WF]Branch Assignment
    AtCoder ARC076 F
    Atcoder ABC155 F
    POJ 1966 Cable TV Network
  • 原文地址:https://www.cnblogs.com/eric-fang/p/9109383.html
Copyright © 2011-2022 走看看