7

そのため、Node.js で以前に php で urlencode された文字列をデコードしようとしています。約1か月前、私はそれを使っていました:

querystring.unescape(str.replace(/\+/g, '%20'));

その後、動作が停止しました-ノードのアップグレードなのか、それとも何なのかわかりません。遊んだ後、「unescape()」を使用できるようですが、まだ確実かどうかはわかりません。

unescape(str.replace(/\+/g, '%20'));

私の質問は、何が最善の方法であり、他の誰かがこの問題に気付いているかということです。最初の行は単純な文字列で機能しますが、奇妙な文字で壊れることに注意してください。おそらく、私が見ていないエンコーディングの問題です。

ここに文字列があります:

%E6.%82%CCI-T%8C%01+A

http://www.tareeinternet.com/scripts/unescape.htmlにアクセスしてデコードします。それが私のオリジナルです (RC4 暗号化文字列です)。Node がその文字列を返すようにします。

4

1 に答える 1

29

If you just use the unescape function that's built in into Node.js, your result should be what you want.

Using Node.js 0.10.1 and running

unescape('%E6.%82%CCI-T%8C%01+A');

on the interactive shell, I get

'æ.ÌI-T\u0001+A'

as result which looks pretty much like what you would like to get.

Hope this helps :-)

于 2013-04-06T20:22:20.620 に答える