一、验证
1、代码如下:
String hanzi = "汉";
String zimu = "a";
String fuhao = ",";
//测试汉字字符
byte[] bytes = StrUtil.bytes(hanzi, CharsetUtil.defaultCharset()); //默认 utf-8 编码
System.out.println("汉字utf-8编码字节为:" + bytes.length);
byte[] bytes1 = StrUtil.bytes(hanzi, CharsetUtil.GBK);
System.out.println("汉字gbk编码字节为:" + bytes1.length);
//测试英文字母
byte[] bytes2 = StrUtil.bytes(zimu, CharsetUtil.defaultCharset()); //默认 utf-8 编码
System.out.println("英文字母utf-8编码字节为:" + bytes2.length);
byte[] bytes3 = StrUtil.bytes(zimu, CharsetUtil.GBK);
System.out.println("英文字母gbk编码字节为:" + bytes3.length);
//测试符号
byte[] bytes4 = StrUtil.bytes(fuhao, CharsetUtil.defaultCharset()); //默认 utf-8 编码
System.out.println("符号utf-8编码字节为:" + bytes4.length);
byte[] bytes5 = StrUtil.bytes(fuhao, CharsetUtil.GBK);
System.out.println("符号gbk编码字节为:" + bytes5.length);
2、输出:
汉字utf-8编码字节为:3
汉字gbk编码字节为:2
英文字母utf-8编码字节为:1
英文字母gbk编码字节为:1
符号utf-8编码字节为:1
符号gbk编码字节为:1
小结:
1、一个英文字母和一个英文标点符号都是占一个字节
2、一个中文汉字和一个中文标点符号,如果使用 utf-8 编码时占3个字节、使用 gbk 编码时占2个字节