📅  最后修改于: 2023-12-03 15:17:57.065000             🧑  作者: Mango
在 Node.js 中有多种字符串解码器可用,本文将介绍这些解码器以及它们如何使用。
querystring
模块提供了一些解码器和编码器函数,用于处理 URL 查询字符串和其它字符串格式。以下是该模块最常用的解码器函数:
querystring.parse(str[, sep[, eq[, options]]])
:将 URL 查询字符串解析为对象。querystring.decode(str[, options])
:将 URL 查询字符串解析为对象,与 querystring.parse()
函数的行为相同。querystring.unescape(str)
:将 URL 编码的字符串解码为原始字符串。querystring.escape(str)
:将字符串编码为 URL 编码的格式。下面是一个示例:
const querystring = require('querystring');
const str = 'name=John&age=30';
const obj = querystring.parse(str);
console.log(obj);
以上代码输出:
{ name: 'John', age: '30' }
buffer
模块提供了将 Buffer 对象转换为字符串的功能。以下是该模块最常用的解码器函数:
Buffer.toString([encoding[, start[, end]]])
:将 Buffer 对象的内容解码为字符串。Buffer.from(string[, encoding])
:将字符串转换为 Buffer 对象。下面是一个示例:
const buf = Buffer.from('Hello world', 'utf8');
const str = buf.toString('utf8');
console.log(str);
以上代码输出:
Hello world
iconv-lite
模块提供了比 Node.js 内置的字符串解码器更多的转换选项,并且支持更多的字符集。以下是该模块最常用的解码器函数:
iconv.decode(str, encoding[, options])
:将字符串解码为指定的字符集。下面是一个示例:
const iconv = require('iconv-lite');
const buf = Buffer.from([0xc3, 0xa7, 0xc3, 0xb6, 0xc3, 0xbc]);
const str = iconv.decode(buf, 'utf8');
console.log(str);
以上代码输出:
çöü
Node.js 提供了多种字符串解码器,我们可以根据需要选择使用。querystring
模块提供了基本的 URL 查询字符串解码器和编码器,buffer
模块提供了将 Buffer 对象转换为字符串的功能,iconv-lite
模块提供了更多的选项以及支持更多的字符集。