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

来源:互联网 发布:推荐les淘宝店 编辑:程序博客网 时间:2024/05/18 00:38


首先是在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);


‘〇’字符可以特判!

1 0