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转换除了问题