servlet中request等中文亂碼問題
一個頁面請求通過tomcat部署到伺服器,我們需要注意編碼一致,否則就容易出現亂碼.這裡我們使用eclipse+tomcat構建一個web請求,實現資料互動,防止頁面出現中文版亂碼。
我們要注意html、java、tomcat的編碼,這裡我們一致使用UTF-8。
一、html編碼:在頭部設定
<metahttp-equiv="Content-Type" content="text/html;charset=utf-8" />
二、tomcat編碼,檔案位置:conf/server.xm
tomcat使用的的編碼方式:iso8859-1
<Connectorport="8080" protocol="HTTP/1.1"
connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
三、Java後臺面編碼:
1.、首先接受頁面提交表單的編碼
request.getparameter()是接受引數,但是在這之前我們應該將request編碼設定一下
request.setCharacterEncoding("UTF-8");而後我們接受的引數就是UTF-8,我們就可以接受中文,然後我們經過一些處理想往前臺傳遞一些中文我們就需要在前臺設定編碼
2、設定響應編碼
response.setHeader("Content-Type","text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
這樣設定後就是將響應介面頭部設定成utf-8編碼,以及傳遞的引數是utf-8編碼形式
備註:
1、注意瀏覽器編碼,一般是自動檢測,所以就是你html頭部編碼形式
2、注意eclipse編碼 具體設定Window->Preferences->General->Workspace->Textfile encoding.
3、還有你web工程下js檔案等一些列的編碼也要注意