Node.js TextDecoder接口
TextDecoder 是一个NodeJS接口,用于对特定的文本编码(如UTF-8、ISO-8859-2、KOI8-R、GBK等)进行解码。它接受字节流作为输入,并产生字符编码流作为输出。
导入:
let var = new TextDecoder(encoding);
参数:
- encoding: 它是一个定义TextDecoder对象将使用的编码的字符串数据类型。默认情况下使用UTF-8。
构造函数:
-
TextDecoder( ): 这个构造函数返回一个新的对象,它可以使用参数中指定的解码格式生成一个码点流。
属性:
TextDecoder不继承任何属性。定义的属性有:
- TextDecoder.encoding: 用于解码的编码格式的名称。
- TextDecoder.fatal: 一个布尔值,表示错误代码是否是致命的。
- TextDecoder.ignoreBOM: 一个布尔值,表示是否忽略BOM(字节顺序标记)。
函数:
-
decode(input): 使用在构造TextDecoder对象时定义的编码,使用内置函数decode对‘input’进行解码。
返回值: 一个表示给定编码格式的解码值的字符串。
示例1: 让我们解码UTF-8类型的编码点。由于默认情况下将使用‘UTF-8’,因此我们不需要在解码器构造函数的参数中定义编码。创建一个文件index.js并编写下面的代码:
let decoder = new TextDecoder();
let uint8Array = new Uint8Array([72, 101, 108, 108, 111]);
console.log(decoder.decode(uint8Array));
运行应用程序的步骤: 在终端中输入以下命令以启动服务器:
node index.js
输出:
Hello
示例2: 要解码非UTF-8编码的值,比如一个用英文写的俄语口号“Привет, мир!”,我们可以使用‘windows-1251’编码类型来解码它的代码点。创建一个名为index.js的文件,然后添加以下代码:
let decoder = new TextDecoder('windows-1251');
let data = new Uint8Array([207, 240, 232, 226, 229,
242, 44, 32, 236, 232, 240, 33]);
console.log(decoder.decode(data));
运行应用程序的步骤: 在终端中输入以下命令启动服务器:
node index.js
输出:
Привет, мир!
浏览器兼容性:
BROWSER | VERSION SUPPORTED |
---|---|
Chrome | 38 |
Edge | 79 |
Firefox | 19 |
Internet Explorer | NOT SUPPORTED |
Opera | 25 |
Safari | 10.1 |
Android WebView | 38 |
Samsung Internet | 3.0 |
Deno | 1.0 |
NodeJS | 11.0.0 |
Safari iOS | 10.3 |
参考: https://nodejs.org/api/util.html#new-textdecoderencoding-options