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

通过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 char string byte 数组

------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

for (int i = 0; i < text.length(); i++) {
    char c = text.charAt(i);

如果你处理的字符 会有中文, text.length()也会有问题。


这里有什么问题?


等楼主发问后再答。

如你想马上知道,可以开个贴 挂个40分给我



这里没有问题。。。。你说错了吧?。。。。


恩,我说的不准确,这么写其实也是可以的。
------解决方案--------------------
Java的字符集转化都有API的,包括GBK, 研究getBytes()去。
------解决方案--------------------
不知道为何你非要用char来转, 如果实在要用的话,看看这个方法能否满足你的要求吧