TextDecoder

JavaScript

在 JavaScript 中,如果得到了一串字节(比如 Uint8Array),要转化成对应的字符串,就可以用到 TextDecoder。简单的使用方法如下:

const decoder = new TextDecoder('utf-8');
const bytes = new Uint8Array([
  104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100
]);
const result = decoder.decode(bytes);

console.log(result); // => "hello world"

当然,上面的这个例子是比较简单的。不使用 TextDecoder 也可以直接转化成字符串:

const bytes = new Uint8Array([
  104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100
]);
const result = String.fromCharCode(...bytes);

console.log(result); // => "hello world"

TextDecoder 的主要优势,需要在非 ASCII 码范围内才体现出来。特别是 utf-8 这类变长字符串编码,直接处理比较困难。交给现成的 API 来处理,简单方便。

参考文档:MDN