Nodejs Buffer

// Buffer实例化的结果是什么?是字符编码的序列,序列有两种方式,一个是16进制,一个是10进制
// 转成字符串的方法
// 1. buf.toString()
// 2. 字符串拼接:'' + buf
function BufferStudy() {
  const data = '2MHN000986'
  const buf = Buffer.from(data) // 转成buffer序列
  console.log('10进制序列号:', buf)
  console.log('打印实例化后的buf:', JSON.stringify(buf)) // 不能用 文字+buf,这样会输出为string类型

  // 如果直接使用,输出的是字符编码的十进制序列
  for (let k = 0; k < buf.length; k++) {
    // console.log('buf当前值:', buf[k])
    const char = String.fromCharCode(buf[k])
    console.log('当前字符:', char)
  }

  // 判断是否是buffer类型
  const isBuffer = Buffer.isBuffer(buf)
  console.log('是否是buffer类型:' + isBuffer)

  // 编译为字符串
  const bufStr = buf.toString()
  console.log('buffer输出为字符串:', bufStr)
  for (let j = 0; j < bufStr.length; j++) {
    // console.log('字符串当前值:', bufStr[j])
  }

  // 查看16进制序列
  const bufHex = buf.toString('hex')
  console.log('16进制序列号:', bufHex)

  for (let i = 0; i < bufHex.length; i++) {
    // 此时是16进制的
    if (i % 2 === 0) {
      let charHex = bufHex.slice(i, i + 2)
      const dec = parseInt(charHex, 16)
      const word = String.fromCharCode(dec)
      console.log(word, '字符-->')
    }
    // console.log('16进制当前值:', bufHex[i])
  }
}
BufferStudy()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在网络通信中,拿前端举例,客户端发送请求给服务器请求index.html,则服务器会以字符串的形式返回给客户端ht...
    lhdoeo阅读 7,136评论 0 5
  • Buffer用于存储原始数据,可以让Nodejs处理二进制数据。Nodejs中处理I/O操作就可能用到Buffer...
    Water水先生阅读 1,865评论 0 0
  • Nodejs中一个专门存放二进制数据的缓存区,对应于 V8 堆内存之外的一块原始内存。Buffer class 是...
    曹吉利阅读 2,454评论 0 0
  • Javascript 作为一个前段开发语言,只能做一些简单的字符串操作或DOM操作就可以满足业务需求。然而在nod...
    编程go阅读 4,948评论 0 1
  • Buffer是nodejs的一个全局对象,因为JavaScript传输的数据字符集是utf-8,因此,需要用Buf...
    报告老师阅读 3,430评论 0 0