JavaScript utf8 bytes转string超简单办法(支持所有文字)

[高手勿喷]
最近想做一个Minecraft的nbt编辑器,里面使用bytes存储了字符串。但是JavaScript似乎没有bytes转字符串的功能(至少我没找到),网上查了很多方法都太繁琐了,这里提供一个又偷懒又好用的办法。

//声明一个Uint8Array,经常被用来存放字节
let bytes=new Uint8Array(....);
//声明空字符串
let str="";
for(let i=0;i<bytes.length;i++){
  //用16进制表示字节
  let k=bytes[i].toString(16);
  //如果只有1位在前面补0
  if(k.length==1)k="0"+k;
  //储存为URI格式
  str+="%"+k
}
//output就是bytes转换后的string啦!
let output=decodeURI(str);

当然也是可以同样的方法逆向转回bytes的。

你可能感兴趣的:(JavaScript utf8 bytes转string超简单办法(支持所有文字))