在JavaScript中,计算字符串的字节大小需要考虑字符串的编码方式,一种兼容性比较好的方式之一,如下:
function getByteSize(str) {
let total = 0;
for (let i = 0; i < str.length; i++) {
const charCode = str.charCodeAt(i);
if (charCode <= 0x007f) {
total += 1; // ASCII字符
} else if (charCode <= 0x07ff) {
total += 2; // 大部分拉丁字母等
} else if (charCode <= 0xffff) {
total += 3; // 基本多文种平面(BMP)中的字符
} else {
total += 4; // 辅助平面字符
}
}
return total;
}