一个中文字符为3个字节,英文字符为1个字节
方法一:
// 创建一个 TextEncoder 对象
const textEncoder = new TextEncoder();
// 要计算字节数的字符串
const str = "。哈哈abc"; // 包含英文字符和中文字符
// 使用 TextEncoder 对象将字符串编码为字节数组
const byteArray = textEncoder.encode(str);
// 计算字节数
const byteCount = byteArray.length;
console.log(`字符串 "${str}" 的字节数为 ${byteCount}`);
方法二:
function getByteSize(str) {
let size = 0;
for (let i = 0; i < str.length; i++) {
let code = str.charCodeAt(i);
if (code <= 0x7f) {
size += 1;
} else if (code <= 0x7ff) {
size += 2;
} else if (code <= 0xffff) {
size += 3;
}
}
return size;
}