char tempchar = '我';
System.out.println(Integer.toHexString((int)tempchar));
tempchar = 'i';
System.out.println(Integer.toHexString((int)tempchar));
String temp = "我i";
byte[] bb = temp.getBytes("unicode");
for(byte b:bb){
System.out.println(Integer.toHexString(b));
}
int i = (bb[3]&((1<<8)-1))+((bb[2]&((1<<8)-1))<<8);
System.out.println(Integer.toHexString(i));
System.out.println((char)i);
输出
6211
69
fffffffe
ffffffff
62
11
0
69
6211
我
从上面可以看出:
1 Java的char使用unicode编码;
2 Unicode编码解析非空字符串的话,前两位byte总是-2,-1