占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);
‘〇’字符可以特判!