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

Posted btxlc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS实现手动将String转换为utf8格式的arraybuffer相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

将String转换为二进制时缺少一位

猪:无法将 java.lang.String 转换为 org.apache.avro.util.Utf8 与 STORE 中的 AvroStorage

字符串与UTF8的转换

golang UTF8转中文字符

IOS关于String转UTF8(Unicode)

如何使用Java代码将GBK编码格式的工程转换为UTF-8编码格式的工程