規律:
可行: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解碼:??