码迷,mamicode.com
首页 > Web开发 > 详细

JS实现手动将String转换为utf8格式的arraybuffer

时间:2019-09-18 11:21:55      阅读:517      评论:0      收藏:0      [点我收藏+]

标签:new   +=   i++   转换   mat   ons   color   进制转化   map   

function code2utf8(uni) {
  let uni2 = uni.toString(2)
  if (uni < 128) {
    return uni.toString(16);
  } else if (uni < 2048) {
    uni2 = (‘00000000000000000‘ + uni2).slice(-11);
    const s1 =  parseInt("110" + uni2.substring(0, 5), 2);
    const s2 =  parseInt("10" + uni2.substring(5), 2);
    return s1.toString(16) + ‘,‘ + s2.toString(16)
  } else {
    uni2 = (‘00000000000000000‘ + uni2).slice(-16);
    const s1 = parseInt(‘1110‘ + uni2.substring(0, 4),2 );
    const s2 = parseInt(‘10‘ + uni2.substring(4, 10), 2 );
    const s3 = parseInt(‘10‘ + uni2.substring(10), 2);
    return s1.toString(16) + ‘,‘ + s2.toString(16) + ‘,‘ + s3.toString(16)
  }
}

function string2buffer(str) {
  let val = ""
  for (let i = 0; i < str.length; i++) {
    val += ‘,‘ + code2utf8(str.charCodeAt(i))
  }
  val += ‘,00‘;
  console.log(val);
  // 将16进制转化为ArrayBuffer
  return new Uint8Array(val.match(/[\da-f]{2}/gi).map(function (h) {
    return parseInt(h, 16)
  })).buffer
}

 

JS实现手动将String转换为utf8格式的arraybuffer

标签:new   +=   i++   转换   mat   ons   color   进制转化   map   

原文地址:https://www.cnblogs.com/btxlc/p/11539810.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!