关于char存储一个汉字的问题

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;
    }
}
posted @ 2022-05-24 09:22  性感的章鱼哥  阅读(71)  评论(0)    收藏  举报