js判斷字符串字節長度,JS計算字符串所占字節數占用儲存大小
js判斷字符串字節長度,JS計算字符串所占字節數占用儲存大小
編碼說明
js使用Unicode編碼,最多時候是:UTF-8 和 UTF-16兩種。
(1)UTF-8 是一種針對Unicode的可變長度字符編碼,可以表示Unicode標準中的任何字符,且其編碼中的第一個字節仍與ASCII相容,使用一至四個字節為每個字符編碼。
js判斷字符串字節長度、字符代碼在:
- 000000 – 00007F之間的,用一個字節編碼;
- 000080 – 0007FF之間的字符用兩個字節;
- 000800 – 00D7FF 和 00E000 – 00FFFF之間的用三個字節,注: Unicode在范圍 D800-DFFF 中不存在任何字符;
- 010000 – 10FFFF之間的用4個字節。
(2)UTF-16 則是定長的字符編碼,大部分字符使用兩個字節編碼,字符代碼超出 65535 的使用四個字節,如下:
- 000000 – 00FFFF 兩個字節;
- 010000 – 10FFFF 四個字節。
js方法
function strSize(str, charset) {let total = 0;charset = charset?.toLowerCase() || '';for (i = 0; i < str.length; i++) {let charCode = str.charCodeAt(i);if (charset === 'utf-16' || charset === 'utf16') {total += charCode <= 0xffff ? 2 : 4;} else {if (charCode <= 0x007f) {total += 1;} else if (charCode <= 0x07ff) {total += 2;} else if (charCode <= 0xffff) {total += 3;} else {total += 4;}}}return total;}