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