jsp頁面編碼

/**
規律:
可行:utf-8編碼--->gbk解碼-->gbk編碼-->utf解碼
可行:utf-8編碼--->iso8859-1解碼-->iso8859-1編碼-->utf解碼
可行:gbk編碼--->iso8859-1解碼-->iso8859-1編碼-->gbk解碼

在JSP頁面獲取表單的值時會出現亂碼,有兩種解決方法:
一種是在調用getParameter之前通過request.setCharacterEncoding設置字符編碼,
另一種是調用new String(str.getBytes("iso8859-1"), "UTF-8")編碼後解碼
*/

String s = "你好";  
// 編碼----------------------------------------
byte[] utf = s.getBytes("utf-8");  
byte[] gbk = s.getBytes("gbk");  

System.out.println("---------------------");
System.out.println("gbk碼用utf解碼再編碼:" + new String((new String(gbk, "utf-8").getBytes("utf-8")),"gbk")); 
System.out.println("gbk碼用iso8859-1解碼再編碼:" + new String((new String(gbk, "iso8859-1").getBytes("iso8859-1")),"gbk")); 
System.out.println("utf碼用gbk解碼再編碼:" + new String((new String(utf ,"gbk").getBytes("gbk")),"utf-8")); 
System.out.println("utf碼用iso8859-1解碼再編碼:" + new String((new String(utf, "iso8859-1").getBytes("iso8859-1")),"utf-8")); 

System.out.println("---------------------");
System.out.println("iso8859-1編碼utf解碼:" + new String(s.getBytes("iso8859-1"),"utf-8"));

System.out.println("iso8859-1編碼gbk解碼:" + new String(s.getBytes("iso8859-1"),"gbk"));


輸出結果:

---------------------
gbk碼用utf解碼再編碼:錕斤拷錕�
gbk碼用iso8859-1解碼再編碼:你好
utf碼用gbk解碼再編碼:你好
utf碼用iso8859-1解碼再編碼:你好
---------------------
iso8859-1編碼utf解碼:??
iso8859-1編碼gbk解碼:??

發佈了30 篇原創文章 · 獲贊 31 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章