日期:2014-05-20  浏览次数:20818 次

中文转成UTF-8问题
String   str   =   new   String(new   String( "人间思乐坊 ").getBytes( "GBK "),   "UTF-8 ");
System.out.println(str);

为什么在eclipse的控制台显示出来的是六个问号(??????)呢?


------解决方案--------------------
GBK是两个字节的,UTF-8的中文是三个字节的。UTF-8解码时是一个一个字节处理的,出错了就用?号代替,有可能第一个字节就出错了,也有可能是第二,第三个,转换出的?个数是不定的。
------解决方案--------------------
沙发
------解决方案--------------------
String str = new String(new String( "人间思乐坊 ").getBytes( "ISO-8859-1 "), "UTF-8 ");
System.out.println(str);
这样试试?
------解决方案--------------------
String str = new String(new String( "人间思乐坊 ").getBytes( "ISO-8859-1 "), "UTF-8 ");
System.out.println(str);

此种方法应该正确
------解决方案--------------------
String str = new String(new String( "人间思乐坊 ").getBytes( "ISO-8859-1 "), "UTF-8 ");
System.out.println(str);
这样输出的也是五个问号。。。。。