当前位置:首页 > JavaScript

js实现getbyte

2026-01-31 13:20:09JavaScript

在JavaScript中获取字符串的字节长度

JavaScript的字符串默认使用UTF-16编码,但实际字节长度会根据不同编码方式而变化。以下是几种获取字节长度的方法:

使用TextEncoder API(现代浏览器支持)

js实现getbyte

function getByteLength(str) {
  return new TextEncoder().encode(str).length;
}
console.log(getByteLength("你好")); // 输出6(UTF-8编码下)

使用Blob对象

js实现getbyte

function getByteLength(str) {
  return new Blob([str]).size;
}
console.log(getByteLength("abc")); // 输出3

手动计算UTF-8字节长度

function getUtf8ByteLength(str) {
  let length = 0;
  for (let i = 0; i < str.length; i++) {
    const code = str.charCodeAt(i);
    if (code <= 0x7f) {
      length += 1;
    } else if (code <= 0x7ff) {
      length += 2;
    } else if (code >= 0xd800 && code <= 0xdbff) {
      // 处理代理对(surrogate pair)
      length += 4;
      i++;
    } else {
      length += 3;
    }
  }
  return length;
}
console.log(getUtf8ByteLength("𝄞")); // 输出4

注意事项

  • TextEncoder默认使用UTF-8编码
  • Blob.size在不同浏览器中可能表现一致
  • 手动计算方法需要处理代理对(surrogate pairs)
  • ASCII字符始终占1个字节
  • 中文在UTF-8中通常占3个字节

以上方法可以根据实际需求选择使用,现代浏览器推荐使用TextEncoder API。

标签: jsgetbyte
分享给朋友:

相关文章

js实现轮播

js实现轮播

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js手势实现

js手势实现

手势识别实现方法 在JavaScript中实现手势识别通常涉及监听触摸事件(touchstart、touchmove、touchend)或鼠标事件(mousedown、mousemove、mouseu…