当前位置:首页 > JavaScript

js实现getbyte

2026-03-02 04:34:16JavaScript

获取字符串的字节长度

在JavaScript中,字符串的字节长度取决于所使用的编码方式。常见的编码如UTF-8中,一个字符可能占用1到4个字节。以下是几种计算字符串字节长度的方法:

方法一:使用TextEncoder API(现代浏览器支持)

js实现getbyte

function getByteLength(str) {
  return new TextEncoder().encode(str).length;
}
console.log(getByteLength("你好")); // 输出6(UTF-8编码下每个中文字符占3字节)

方法二:Blob对象方式

js实现getbyte

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

方法三:手动计算UTF-8字节长度

function getByteLength(str) {
  let bytes = 0;
  for (let i = 0; i < str.length; i++) {
    const code = str.charCodeAt(i);
    bytes += code < 128 ? 1 : code < 2048 ? 2 : 3;
  }
  return bytes;
}
console.log(getByteLength("A®文")); // 输出5(1+2+2)

注意事项

  • 如果字符串包含代理对(如emoji),方法三需要额外处理四字节字符
  • 在Node.js环境中可以直接使用Buffer.byteLength方法:
    Buffer.byteLength("中文", 'utf8'); // 返回6

不同编码的影响

指定不同编码会得到不同的字节长度结果:

// Node.js示例
console.log(Buffer.byteLength("中文", 'utf16le')); // 输出4
console.log(Buffer.byteLength("中文", 'utf8'));    // 输出6

标签: jsgetbyte
分享给朋友:

相关文章

js实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue-r…

js实现计算器

js实现计算器

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

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js 实现拖拽

js 实现拖拽

实现拖拽的基本步骤 在JavaScript中实现拖拽功能需要监听几个关键事件:mousedown、mousemove和mouseup。以下是实现的基本逻辑。 监听目标元素的mousedown事件,记…

js实现图片放大

js实现图片放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性实现图片放大效果。当鼠标悬停时,图片会平滑放大。 const img = document…