回覆列表
-
1 # 麥凱阿颯
-
2 # 匠心架構
1.第一種方式【java.net.URLDecoder】
String condition = URLDecoder.decode(condition, "utf-8");
2.第二種方式
String filePath = new String(filePath.getBytes("UTF-8"),"iso-8859-1");
3.第三種方式【java.net.URLEncoder】
String fileName = URLEncoder.encode(fileName, "utf-8");
在合適的地方運用合適的編碼轉碼,就能得到良好的效果!
判斷字串的編碼方式:
String iso8859 = new String(fileName.toString().getBytes("iso8859-1"));
String gbk = new String(fileName.toString().getBytes("gbk"));
String utf8 = new String(fileName.toString().getBytes("utf-8"));
if(iso8859.equals(fileName.toString())){
System.out.println("iso8859");
}else if(gbk.equals(fileName.toString())){
System.out.println("gbk");
}else if(utf8.equals(fileName.toString())){
System.out.println("utf8");
}
在計算機中,任何文字都是以指定的編碼方式儲存的,在java中常見的幾種編碼是:utf 、ISO8859-1,GBK 、unicode.
iso8859-1屬於單自己編碼,只能表示0~255的字元範圍,主要應用在英語上
gbk中文的國標編碼,主要表示漢字,是雙位元組編碼
unicode 標準編碼之一,使用16進製表示編碼,此編碼不相容iso8859-1
utf編碼是不定長編碼,每一個字元的長度從1-6個位元組不等。
亂碼的產生,主要是因為程式沒有處理好字元編碼,比如預設編碼是utf,但是在程式中使用了iso8859-1編碼,這時就產生了亂碼。亂碼產生的根本原因是字元編碼不統一造成的。
System類可以獲取系統相關的資訊, 獲得編碼的方法是 public static properties getProperty()