Node.js - querystring.escape() 方法



Node.js querystring 模块提供了用于解析和格式化 URL 查询字符串的实用程序。querystring.escape() 方法将从普通字符串返回一个百分比编码的查询字符串。此方法几乎类似于 encodeURIComponent 函数。

此方法通过 % 符号将普通字符串编码为 URL 查询字符串。它将遍历给定的字符串,并在需要的地方添加 % 符号。此方法采用一个参数,即要编码的字符串,并返回同一字符串的编码版本作为其输出。

编码过程将某些字符替换为其十六进制等效字符,以便浏览器或数据库不会将它们解释为代码的一部分。例如,“&”在编码形式中将变为“%26”。

语法

以下是Node.js querystring.escape()方法的语法 -


 querystring.escape(str)

参数

  • str − 此参数包含一个字符串,该字符串表示编码的查询字符串。

返回值

此方法返回一个字符串,该字符串包含由给定字符串生成的查询字符串。

如果我们将一个普通字符串传递给Node.js querystring.escape() 方法,它将返回一个百分比编码的查询字符串。

在给定的程序中,我们将一个普通字符串传递给Node.js querystring.escape() 方法。


const querystring = require('node:querystring');

var result = "Articles Node.js qikepu";
console.log(querystring.escape(result));

输出

internal/modules/cjs/loader.js:596
throw err;
^

Error: Cannot find module 'node:querystring'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:594:15)
at Function.Module._load (internal/modules/cjs/loader.js:520:25)at Module.require (internal/modules/cjs/loader.js:650:17)
at require (internal/modules/cjs/helpers.js:20:18)
at Object.<anonymous> (/home/cg/root/63a038fade650/main.js:1:83)
at Module._compile (internal/modules/cjs/loader.js:702:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32)
at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
at Function.Module._load (internal/modules/cjs/loader.js:543:3)

注意 - 要查看实际结果,请在本地执行上述代码。

正如我们在下面的输出中看到的,Node.js querystring.escape() 方法返回了一个百分比编码的查询字符串。

Articles%20Node.js%20qikepu

如果我们将一个普通字符串传递给 encodeURIComponent 函数,它将返回一个百分比编码的查询字符串。

在以下示例中,我们将一个普通字符串传递给 encodeURIComponent 函数。


const querystring = require('node:querystring');
var encodeURIComponent_func = "Articles HTML qikepu";
console.log(encodeURIComponent(encodeURIComponent_func))

输出

internal/modules/cjs/loader.js:596
throw err;
^Error: Cannot find module 'node:querystring'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:594:15)
at Function.Module._load (internal/modules/cjs/loader.js:520:25)
at Module.require (internal/modules/cjs/loader.js:650:17)
at require (internal/modules/cjs/helpers.js:20:18)
at Object.<anonymous> (/home/cg/root/63a038fade650/main.js:1:83)
at Module._compile (internal/modules/cjs/loader.js:702:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32)
at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
at Function.Module._load (internal/modules/cjs/loader.js:543:3)

注意 - 要查看实际结果,请在本地执行上述代码。

正如我们在输出中看到的,encodeURIComponent 函数将返回一个百分比编码的查询字符串。

Articles%20HTML%20qikepu

如果将普通字符串传递给 Node.js querystring.escape() 方法和 encodeURIComponent() 方法,则返回百分比编码的查询字符串。

在以下示例中,我们尝试通过Node.js querystring.escape() 和 encodeURIComponent() 方法对提供的字符串进行编码。


const querystring = require('node:querystring'); 	
let string = "Articles Nodejs qikepu";
let escaped = querystring.escape(string)
let encodedURI = encodeURIComponent(string);
console.log("The result of querystring() method: " + escaped);
console.log("The result of decodeURIComponent() method: " + encodedURI)

if (escaped === encodedURI){
	 	console.log("Both the results are same.");
}
else{
	 	console.log("Both the results are not same");
}

输出

internal/modules/cjs/loader.js:596
throw err;
^

Error: Cannot find module 'node:querystring'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:594:15)
at Function.Module._load (internal/modules/cjs/loader.js:520:25)
at Module.require (internal/modules/cjs/loader.js:650:17)
at require (internal/modules/cjs/helpers.js:20:18)
at Object.<anonymous> (/home/cg/root/63a038fade650/main.js:1:83)
at Module._compile (internal/modules/cjs/loader.js:702:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32)
at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
at Function.Module._load (internal/modules/cjs/loader.js:543:3)

注意 - 要查看实际结果,请在本地执行上述代码。

执行上述程序后,两种方法都返回了相同的字符串。

The result of querystring() method: Articles%20Nodejs%20qikepu
The result of decodeURIComponent() method: Articles%20Nodejs%20qikepu
Both the results are same.