Tomcat服務器默認采用的ISO8859-1編碼
產生的原因:
不同數據來源的編(解)碼格式不同:
數據來源 | 默認編碼格式 |
---|---|
瀏覽器頁面 | GBK (可在瀏覽器頁面右鍵切換) |
request(get) | ISO-8859-1 |
request(post) | GBK(同瀏覽器),但是如果是服務器來的頁面一般已經設置了UTF-8(例如JSP提交的頁面) |
Servlet(response) | ISO-8859-1 |
1.請求中文的處理:
get:
String code=new String(request.getParameter("code").getBytes("ISO8859-1"),"UTF-8");
post:
request.setCharacterEncoding("UTF-8");
2.響應中的中文處理:
response.setContentType(“text/html;charset=UTF-8”);
3.注意
1,一般情況下,JSP頁面的默認編碼字符集要設置成UTF-8。否則無法完成中文顯示和數據傳輸。這里不考慮GBK的情況
2,在服務器端的程序之間,數據傳輸都是以UTF-8格式傳輸的。所有不用考慮中文亂碼問題
3,setCharacterEncoding(“UTF-8”)是設置字符集,request調用是設置解碼方式(因為是從頁面過來的),而response調用時設置編碼方式(因為要想頁面輸出內容,先在Servlet中編碼)
4,getBytes(“UTF-8”);方法通過字符串調用,是按照指定字符集編碼。
5,new String(string.getBytes(“ISO-8859-1”),”UTF-8”);方法將string字符串先以原始(ISO-8859-1)進行解碼轉成字節數組,在以(UTF-8)編碼封裝成新字符串。