Java一个汉字占几个字节(详解与原理)(转载https://www.cnblogs.com/lslk89/p/6898526.html)

1、先说重点:

不同的编码格式占字节数是不同的,UTF-8编码下一个中文所占字节也是不确定的,可能是2个、3个、4个字节;

2、以下是源码:

复制代码

 1   @Test
 2     public void test1() throws UnsupportedEncodingException {
 3         String a = "名";
 4         System.out.println("UTF-8编码长度:"+a.getBytes("UTF-8").length);
 5         System.out.println("GBK编码长度:"+a.getBytes("GBK").length);
 6         System.out.println("GB2312编码长度:"+a.getBytes("GB2312").length);
 7         System.out.println("==========================================");
 8 
 9         String c = "0x20001";
10         System.out.println("UTF-8编码长度:"+c.getBytes("UTF-8").length);
11         System.out.println("GBK编码长度:"+c.getBytes("GBK").length);
12         System.out.println("GB2312编码长度:"+c.getBytes("GB2312").length);
13         System.out.println("==========================================");
14 
15         char[] arr = Character.toChars(0x20001);
16         String s = new String(arr);
17         System.out.println("char array length:" + arr.length);
18         System.out.println("content:|  " + s + " |");
19         System.out.println("String length:" + s.length());
20         System.out.println("UTF-8编码长度:"+s.getBytes("UTF-8").length);
21         System.out.println("GBK编码长度:"+s.getBytes("GBK").length);
22         System.out.println("GB2312编码长度:"+s.getBytes("GB2312").length);
23         System.out.println("==========================================");
24     }

复制代码

3、运行结果

复制代码

 1 UTF-8编码长度:3
 2 GBK编码长度:2
 3 GB2312编码长度:2
 4 ==========================================
 5 UTF-8编码长度:4
 6 GBK编码长度:1
 7 GB2312编码长度:1
 8 ==========================================
 9 char array length:2
10 content:|  
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值