JS 计算字符串在UTF-8编码格式下的占用字符数

11/13/2023 javascript

# 👋 UTF-8字节数计算函数

在JavaScript中,字符串的长度和字节数之间的关系可能会因字符串中包含的字符而有所不同。由于UTF-8编码是一种变长编码,每个字符可能占用不同数量的字节。

  • 以下是一个简单的JavaScript函数,可以用于计算一个字符串在UTF-8编码下所占的字节数:
function utf8ByteLength(str) {
  let count = 0;

  for (let i = 0; i < str.length; i++) {
    const code = str.charCodeAt(i);

    if (code <= 0x7f) {
      count += 1;
    } else if (code <= 0x7ff) {
      count += 2;
    } else if (code <= 0xffff) {
      count += 3;
    } else if (code <= 0x10ffff) {
      count += 4;
    }
  }

  return count;
}