1. 程式人生 > >javaweb專案中中文亂碼

javaweb專案中中文亂碼

  總結一下,在JavaWeb中針對各種情況處理中文亂碼的方法。 

  首先我們看下,一個請求響應的流程

  瀏覽器------------------>Servlet容器--------------->顯示頁面

    編碼              使用容器的URIEncoding轉碼             解碼

 舉例:Tomcat作為Servlet容器,Tomcat的預設的URIEncoding是“iso8859-1“,可在server.xml配置檔案中指定編碼型別

  1.JSP中顯示亂碼

     解決方法:在JSP中第一行加上<%@ page pageEncoding="UTF-8"%>

                      即可解決。

  2.Servlet中顯示亂碼

     解決方法:在Servlet中加上response.setContentType("text/html;charset=UTF-8");

   3.Post請求中傳中文引數顯示亂碼

     解決方法:接受引數前,加上request.setCharaterEncoding("UTF-8");

  4.Get請求中傳中文引數顯示亂碼

        第一種解決方法:程式轉碼

        String value = new String(pValue.getBytes("iso-8859-1"), "UTF-8");
   第二種解決辦法:

    解決方法:修改tomcat,conf資料夾下的server.xml檔案。將其中的

    <Connector port="8080" protocol="HTTP/1.1"   
               connectionTimeout="20000"   
               redirectPort="8443"/>  

             修改為:

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