汉字占多少字节

3/15/2022 面试题Java

摘要

JDK:1.8.0_202

# 一:解析

public static void main(String[] args) throws Exception {
    String a1 = "中";
    System.out.println("UTF-8编码长度:" + a1.getBytes(StandardCharsets.UTF_8).length);  // UTF-8编码长度:3
    System.out.println("GBK编码长度:" + a1.getBytes("GBK").length);         // GBK编码长度:2
    System.out.println("GB2312编码长度:" + a1.getBytes("GB2312").length);   // GB2312编码长度:2
    System.out.println("==========================================");

    String a2 = "a";
    System.out.println("UTF-8编码长度:" + a2.getBytes(StandardCharsets.UTF_8).length);  // UTF-8编码长度:1
    System.out.println("GBK编码长度:" + a2.getBytes("GBK").length);         // GBK编码长度:1
    System.out.println("GB2312编码长度:" + a2.getBytes("GB2312").length);   // GB2312编码长度:1
    System.out.println("==========================================");
}
1
2
3
4
5
6
7
8
9
10
11
12
13

运行结果:

运行结果

总结:

  • 字符串是utf-8编码,一个汉字三个字节,一个字母一个字节;

  • 字符串是gbk编码时,一个汉字两个字节,一个字母一个字节。

最后更新: 10/19/2022, 12:31:23 AM