实话说,作为一个多年Java老年程序员,直到近来,在没有决心花时间搞清楚Java String的编码相关问题之前, 自己也都还是似懂非懂,一脸懵逼的。设想如果在面试中,有同学能够条理清晰的回答下面的问题,那必是非常了得之人,论智慧武功应该均在本人之上:-)。
问:请预测下面程序的输出,并解释原因。printHexBinary方法为16进制打印Byte
String str = "中";
byte[] bufferGBK = str.getBytes("GBK");
System.out.println("bufferGBK = "+printHexBinary(bufferGBK)) ;
String gbkString =new String(bufferGBK,"GBK");
System.out.println("gbkString = new String bufferGBK GBK : "+gbkString);
String utf8String =new String(bufferGBK,"utf-8");
System.out.println("utf8String = new String bufferGBK utf8 : "+utf8String);
byte[] utfFromStr = utf8String.getBytes("utf-8");
System