1.常見的字符編碼有UTF-8、GBK、IOS8859-1
2.常見的中文亂碼有??、涓浗、ä¸å½
下面做個測試類
public static void main(String[] args) throws UnsupportedEncodingException {
String zwutf = new String("中國".getBytes(),"UTF-8");
String zwUTF_GBK = new String(zwutf.getBytes(),"GBK");
String zwUTF_IOS = new String(zwutf.getBytes("ISO8859-1"));
System.out.println("utf-8——>gbk:"+zwUTF_GBK);
System.out.println("utf-8gbk——>uft-8:"+new String(zwUTF_GBK.getBytes("GBK")));
System.out.println("utf-8——>ISO:"+zwUTF_IOS);
String zwGBK = new String("中國".getBytes(),"GBK");
String zwGBK_UTF = new String(zwGBK.getBytes(),"UTF-8");
String zwGBK_IOS = new String(zwGBK.getBytes(),"ISO-8859-1");
System.out.println("gbk——>utf-8:"+zwGBK_UTF);
System.out.println("gbk-UTF-8——>uft-8:"+new String(zwGBK_UTF.getBytes("gbk")));
System.out.println("gbk——>ISO:"+zwGBK_IOS);
String zwios = new String("中國".getBytes(),"ISO-8859-1");
String zwios_UTF = new String(zwios.getBytes(),"UTF-8");
String zwios_gbk = new String(zwios.getBytes(),"GBK");
System.out.println("ISO——>utf-8:"+zwios_UTF);
System.out.println("ISO——>GBK:"+zwios_gbk);
}
輸出的結果是
utf-8——>gbk:涓浗
utf-8gbk——>uft-8:中國
utf-8——>ISO:??
gbk——>utf-8:涓浗
gbk-UTF-8——>uft-8:中國
gbk——>ISO:æ¶î
æµ
ISO——>utf-8:ä¸å½
ISO——>GBK:盲賂顱氓聸陸
可以知道
這種類型的中文亂碼“涓浗”主要是gbk——>utf-8的轉換除了問題
“??”這種類型中文亂碼主要是utf-8——>ISO的轉換出了問題
“ä¸å½” 這種類型的問題主要是ISO——>utf-8轉換除了問題