char在java中是2个字节(16位),采用unicode编码, 无论是汉字还是数字字母,或其他语言。
1,char的编码形式是unicode编码,即汉字都是两个字节,超出两个字节大小的字符将会引发异常
2,即使将Java的默认编码改为UTF-8或其他,仅会改变String的编码方式,char的编码形式依然是unicode编码
public class charToByte {
public static void main(String[] args) {
String str="张";
char ch='张';
byte[] b1=str.getBytes(StandardCharsets.UTF_8);
System.out.println(b1.length);//3
byte[] b2=charToByte(ch);
System.out.println(b2.length);//2
}
public static byte[] charToByte(char c) {
byte[] b = new byte[2];
b[0] = (byte) ((c & 0xFF00) >> 8);
b[1] = (byte) (c & 0xFF);
return b;
}
}