如何在Node.js中为请求编码任意string?

我有一个这样的string:“abcde李”。 它可以是任何非拉丁字符的string。

我想编码它在请求中使用,所以它会是“abcde%E6%9D%8E”,可以用于http.request。

我试过这个:

str.toString("utf-8"); 

要么

 var buffer = new Buffer(str); str = buffer.toString('utf-8'); 

但他们都没有工作。 处理这个问题的正确方法是什么?

该string已经是UTF-8。 它看起来像你试图逃避它在HTTP查询string中使用 ,所以试试这个:

 var qs = require('querystring'); qs.escape('abcde 李'); // => 'abcde%20%E6%9D%8E'