1. 程式人生 > >Web應用的亂碼處理

Web應用的亂碼處理

亂碼產生的原因:編碼和解碼的方式不一樣

1.get請求:

亂碼的產生:

瀏覽器傳送請求時會將URL進行utf-8編碼,請求到達tomcat伺服器後會以ISO-8859-1的方式進行解碼,所以在Servlet中通過request.getParameter()方式獲得的引數是亂碼的。

解決亂碼問題:

改變tomcat的編碼方式。

修改Server專案中的server.xml,加上URIEncoding="utf-8"。即

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

2.post請求

post方式的請求會繞過tomcat伺服器,直接到達doPost()方法,所以引數不會被tomcat解碼,而是在request.getParameter()獲取引數之前進行自動解碼,所以要在獲取引數之前設定字元的編碼方式:request.setCharacterEncoding("utf-8");
另外,還要使瀏覽器以utf-8的方式讀取相應資訊:response.setCharacterEncoding("utf-8");

3.將頁面上的編碼方式設定為utf-8。

<meta charset
="UTF-8">

4.將web專案所有檔案的編碼方式改為utf-8

在專案的Properties中設定。