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

byte转string问题
Java code

    byte[] array = new byte[] { 10, -56, 13, 31};
    String temp = new String(array);
              for (int i = 0; i < temp.getBytes().length; i++)
                       System.out.println(temp.getBytes()[i]);


这段代码byte数组里面的-56在转回来输出时结果不同多了几个数。
想问下它的转换机制是怎样的,为什么负数会不同。

------解决方案--------------------
而10, 13,31 是有对应的 ASCII码的.

如下:
0000 1010 10 0A LF (NL line feed, new line) 换行键
0001 0011 19 13 DC3 (device control 3) 设备控制3
0001 1111 31 1F US (unit separator) 单元分隔符
------解决方案--------------------
现在楼主看到这种情况,不知道是否明白这种现象:

有些文件在一些编辑器打开是正常的,而在另一个编辑器打开会出现“黑点”