UTF编码字符串的总字节数计算

本文详细介绍了UTF-8编码的特点及不同字符所占字节数,包括数字、英文、常见汉字及特殊字符,并提供JavaScript代码示例以计算字符串的字节大小。


首先是在UTF-8编码下

占2个字节的:〇

占3个字节的:基本等同于GBK,含21000多个汉字

占4个字节的:中日韩超大字符集里面的汉字,有5万多个

一个utf8数字占1个字节

一个utf8英文字母占1个字节


来自

UTF-8的编码结构长度是根据某单个字符的大小来决定长度有多少。
下面为单个字符的大小占用几个字节。单个unicode字符编码之后的最大长度为6个字节。

  • 1个字节:Unicode码为0 - 127
  • 2个字节:Unicode码为128 - 2047
  • 3个字节:Unicode码为2048 - 0xFFFF
  • 4个字节:Unicode码为65536 - 0x1FFFFF
  • 5个字节:Unicode码为0x200000 - 0x3FFFFFF
  • 6个字节:Unicode码为0x4000000 - 0x7FFFFFFF

JS:

var str="zhong中国1234";
    var byteSize = 0;
    for (var i = 0; i < str.length; i++) {
      var charCode = str.charCodeAt(i);
      if (0 <= charCode && charCode <= 0x7f) {
        byteSize += 1;
      } else if (128 <= charCode && charCode <= 0x7ff) {
        byteSize += 2;
      } else if (2048 <= charCode && charCode <= 0xffff) {
        byteSize += 3;
      } else if (65536 < charCode && code <= 0x1FFFFF) {
        byteSize += 4;
      } else if (0x200000 < charCode && charCode <= 0x3FFFFFF) {
        byteSize += 5;
      } else if (0x4000000 < charCode && charCode <= 0x7FFFFFFF) {
        byteSize += 6;
      }
    }
    console.log('byteSize',byteSize);


‘〇’字符可以特判!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值