在学习byte数组和string的转换时,发现一个问题,程序如下(参考别人的,有修改):
class TestCharset {
public static void main(String[] args) {
new TestCharset().execute();
}
private void execute() {
String s = "Hello!你好!";
byte[] bytesGBK = null;
try{
bytesGBK = s.getBytes("GBK");
System.out.println("bytesGBK="+bytesGBK);
}
catch (java.io.UnsupportedEncodingException e)
{
e.printStackTrace();
}
System.out.println ("--------------/n GBK bytes:");
System.out.println("bytes is:" + arrayToString1(bytesGBK));
System.out.println("bytes is: " + arrayToString2(bytesGBK));
public static final String arrayToString1(byte[] bytes) {
StringBuffer buff = new StringBuffer();
for (int i = 0; i < bytes.length; i++) {
buff.append(bytes[i] +" ");
}
return buff.toString();
}
public static final String arrayToString2(byte[] bytes) {
String res =new String(bytes);
return res;
}
}
结果如下:
bytesGBK=[B@c17164
bytes is:72 101 108 108 111 33 -60 -29 -70 -61 -93 -95
bytes is: Hello!你好!