Node.js querystring.unescape() 方法

2025年2月21日 | 阅读 4 分钟

本文将讨论 Node.js 的 querystring.unescape() 方法,包括其语法、参数、用途和示例。

Node.js querystring.unescape() 方法是什么?

querystring.unescape() 方法用于在 Node.js 中解码指定字符串内的 URL 百分比编码字符。querystring 模块在 Node.js 中拥有此函数,该函数包含用于解析和格式化 URL 查询字符串的工具。

为了处理或显示编码的数据,需要将其解码回原始状态。这就是 querystring.unescape() 的用例。它会在输入字符串中查找百分比编码序列,并将每个序列还原为原始表示形式。这涉及到在保持其完整性的同时管理特殊字符。

该方法的能力在涉及查询字符串且 URL 编码数据普遍存在的情况下尤其有用。通过使用 querystring.unescape(),开发人员可以安全地解码查询参数并从 URL 中检索有用信息。此外,该方法能够解码空格,与一些其他解码过程相比,这增加了其适应性和实用性。

目的和功能

querystring.unescape() 方法的主要目的是删除百分号,并用相应的字符替换它,以便将百分比编码字符串转换为常规字符串。百分号后跟两个十六进制数字的 "%" 是称为“百分比编码”的方法,用于在统一资源标识符 (URI)(包括 URL)中对数据进行编码。

例如

空格字符由 %20 表示。

%3D等号 (=) 的表示。

%26 表示一个与号 (&)

语法

它具有以下语法:

参数

  • Str: 包含 URL 编码字符的字符串。

返回值

它返回一个新字符串,其中包含已解码的 URL 编码字符。

为什么要使用 querystring.unescape()?

最初,Node.js 提供的实用工具中包含了处理 URL 查询字符串的功能。

在处理查询字符串时,它提供了一个简单的接口来解码 URL 编码的字符串。

关键点

1. URL 编码和解码

  • URL 编码:它将字符转换为 Internet 可传输的格式。为了执行此操作,用百分号 (%) 替换某些字符,后跟两个十六进制数字。例如,编码的空格是 %20。
  • URL 解码:它将编码的字符还原为原始形式。

将 URL 编码的字符串传递给 "querystring.unescape()" 函数,该函数返回解码后的字符串。

2. 基本用法

querystring 返回解码后的 string.unescape() 方法,该方法接受 URL 编码的字符串作为输入。

局限性

  • 遗留状态:此功能被视为遗留功能,可能不会在未来的 Node.js 版本中进行更新或删除。
  • 范围有限:由于它是专门为查询字符串设计的,因此可能不适合其他解码任务。

示例

让我们举一个例子来说明 Node.js 的 querystring.unescape() 方法。

输出

 
The server is running on https://:3000
Original Query String is: name%3DJohn%26age%3D30%26city%3DNew%20York
Decoded Query String is: name=John&age=30&city=New York
Parsed Query Object is: { name: 'John', age: '30', city: 'New York' }
Custom Decoded String is: name=John&age=30&city=New@York   

说明

此代码处理传入的 HTTP 请求,并建立一个 Node.js HTTP 服务器,该服务器解析 URL 中的查询字符串。RequestHandler 函数从请求 URL 中提取查询字符串,记录它,使用自定义的 unescape 方法对其进行解码,并将其解析为对象。在记录了处理后的查询对象后,将其作为 JSON 响应发送给客户端。http 模块用于构建服务器,该服务器监听端口 3000。为了处理特定的“URL 编码字符,将 %20 替换为空格,将 %3D 替换为 =,将 %26 替换为 &,将 %40 替换为 @”,还指定了一个特殊的 unescape 函数。此自定义函数用于 QString.unescape,在那里它解码编码的字符串并记录其结果以展示其功能。