通过char将String转换成byte数组
本帖最后由 skmbw 于 2013-09-22 15:58:36 编辑
例如 String text = "阿是";
如果通过byte[] bytes = text.getBytes();转换得到的字节数组是
[-80, -94, -54, -57]
如果要通过char来做,也就是遍历String中的每一个字符,然后将其
转换成byte数组。要和text.getBytes()得到的数组一样,该怎么做呢?
编码是GBK编码。
比如:
String text = "阿是";
byte[] bytes = text.getBytes();//[-80, -94, -54, -57]
byte[] abytes = new byte[text.length() * 2];
for (int i = 0; i < text.length(); i++) {
char c = text.charAt(i);
//在这里通过c,该怎么做,才能将String转成byte[]
//System.out.println((byte)((c + 0xA0)) );
//System.out.println((byte)(0x96));
//System.out.println((byte)(0xA0 + (c >> 6)));
//System.out.println((byte)(0xa0 + (c & 0x3F)));
}
请大神不吝赐教。
------解决方案--------------------
恩,我说的不准确,这么写其实也是可以的。
------解决方案--------------------Java的字符集转化都有API的,包括GBK, 研究getBytes()去。
------解决方案--------------------不知道为何你非要用char来转, 如果实在要用的话,看看这个方法能否满足你的要求吧