char 型变量中能不能存贮一个中文汉字

1、汉字所占的字节数

ASCII码:

英文字母(不分大小写)占一个字节

中文汉字占两个字节

二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。如一个ASCII码就是一个字节。

UTF-8编码:

英文字符等于一个字节

中文(含繁体)三个字节

Unicode编码:

英文两个字节

中文(含繁体)两个字节

2、测试

  public static void main(String[] args) {
        char c1='早';
        System.out.println(c1);
        char c2='z';
        System.out.println(c2);
    }
早
z

char类型可以存储一个中文汉字,因为Java中使用的编码是Unicode(不选择任何特定的编码,直接使用字符在字符集中的编号),一个char类型占2个字节(16bit),所以可以放一个中文

 一个char类型的变量在存放两个或三个汉字的时候就会报错

3、编码转换

使用Unicode意味着字符在JVM内部和外部有不同的表现形式,在JVM内部都是Unicode,当这个字符被从JVM内部转移到外部时(例如存入文件系统中),需要进行编码转换。所以Java中有字节流和字符流,以及在字符流和字节流之间进行转换的转换流,如InputStreamReader和OutputStreamReader,这两个类是字节流和字符流之间的适配器类,承担了编码转换的任务

猜你喜欢

转载自www.cnblogs.com/zhai1997/p/12723395.html
今日推荐