2012-04-02 4 views
2

私は「abcde李」のような文字列を持っています。ラテン文字以外の文字列でもかまいません。Node.js内の任意の文字列をリクエスト用にエンコードする方法は?

リクエストで使用するようにエンコードしたいので、 "abcde%E6%9D%8E"になり、http.requestに使用できます。

私はこれを試してみました:

str.toString("utf-8"); 

または

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

は、それらのどれもが動作しません。これを処理する適切な方法は何ですか?

答えて

3

その文字列はすでにUTF-8です。それはあなたがHTTP query stringでの使用のためにそれを脱出しようとしているように見えるので、この試してください:あなたは男です

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

を!!!!私はいつもエンコーディングとエスケープに対処する方法が混乱しています..ありがとう。 :) – murvinlai

+2

この場合、qs.escapeとencodeURIの違いは何ですか? – Kevin

+0

@Kelvin:この例では効果的に違いはありません。 ['querystring.escape(...)'](http://nodejs.org/docs/latest/api/querystring.html#querystring_querystring_escape)のnode.jsドキュメントは、この関数が主に存在することに注意していますオーバーライドされる。 ['encodeURI(...)'](https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/encodeURI)を使用すると同じ結果が得られます。 – maerics

関連する問題