gbk编码下 大写字母A是一个字节吗
这里老师说只能写进去后八位 这里大写A是两位的吗
这里老师说只能写进去后八位 这里大写A是两位的吗
2017-10-31
首先,gbk编码方式是中文占两个字节,英文占1个字节。但是,Java是双字节编码,采用的是utf-16be编码方式,而utf-16be编码是中文和英文都占两个字节。这里的write()写A、B、i 都是采用的Java默认的编码,只是后面的汉字“中”才采用的gbk编码,所以老师getBytes("gbk")传入了编码方式。
因为A是char 型,16位,本身是占两个字节。我猜你是上面这个知识点没弄明白。
这里老师就是想说明write()方法一次只能写一个字节,所以这里A只写了后8位,所以A是没有读写完的。但是后面能正常被read()读出来,是因为A本身后8位字节就表示它了(01000001),前8位都是0。
首先,gbk编码方式是中文占两个字节,英文占1个字节。但是,Java是双字节编码,采用的是utf-16be编码方式,而utf-16be编码是中文和英文都占两个字节。这里的write()写A、B、i 都是采用的Java默认的编码,只是后面的汉字“中”才采用的gbk编码,所以老师getBytes("gbk")传入了编码方式。
因为A是char 型,16位,本身是占两个字节。我猜你是上面这个知识点没弄明白。
这里老师就是想说明write()方法一次只能写一个字节,所以这里A只读了后8位,所以A是没有读完的。但是后面能正常被read()出来,是因为A本身后8位字节就表示它了(01000001),前8位都是0。
举报