当前位置:首页 > 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
分享给朋友:

相关文章

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Promis…

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swip…

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEve…