JavaWeb篇——部署在Tomcat上的JavaWeb应用中文乱码问题

JavaWeb篇——部署在Tomcat上的JavaWeb应用中文乱码问题

关于中文乱码:

  • 首先,在JSP页面上输出中文,请求页面后不出现乱码的前提是:

     contentType="text/html以及charset="UTF-8",pageEncoding="UTF-8" 
    
     即:charset 和pageEncoding的编码要保持一致,通常建议取值为UTF-8
    
  • 其次,服务器在接收请求时使用的默认编码为ISO-8859-1

    也就是说客户端发送过来的数据无论是UTF-8还是GBK,服务器都认为是ISO-8859-1
    除此之外还需保证浏览器的显示的字符编码也和请求的JSP页面的编码一致,建议使用谷歌浏览器(默认编码为UTF-8)
    
  • 补充说明:

    • 对于POST 请求:只要在获取请求信息之前,在调用request的getParameter或
      getReader等方法之前,调用request.setCharacterEncoding("UTF-8")即可

    • 对于GET请求:前面的方式无效。可在tomcat的server.xml为Connector节点添加
      useBodyEncodingForURI="true"属性解决,代码如下:

        <Connector 
                connectionTimeout= "20000" 
                port="8989" 
                protocol= "HTTP/1.1" 
                redirectPort= "8443" 
                useBodyEncoding="true"
        />
    

posted @ 2020-05-08 12:02  G_B  阅读(434)  评论(0编辑  收藏  举报