String str = new String(new String("人间思乐坊").getBytes("GBK"), "UTF-8");
System.out.println(str);为什么在eclipse的控制台显示出来的是六个问号(??????)呢?
System.out.println(str);为什么在eclipse的控制台显示出来的是六个问号(??????)呢?
System.out.println(str);
这样试试?
System.out.println(str);此种方法应该正确
System.out.println(str);
这样输出的也是五个问号。。
new String(new String("人间思乐坊").getBytes("GBK"), "UTF-8");做了没事事情了呢
new String("人间思乐坊") -- 建立一个字符串,字符串内容“人间思乐坊”,内存中的编码是unicode的。
getBytes("GBK") -- 把字符串按GBK编码,然后返回得到的编码,这时候是十个字节
new String(XXX,"UTF-8"); -- 把得到的字节数组按UTF-8编码建立字符串,GBK与UTF-8根本是不兼容的,差异还非常大,这时候再按UTF-8编码当然就会得到一堆乱码了,至于为什么是六个问号,我上面已经说了