2016-01-03 10 views
6

को डीकोड कैसे करें मैं एक्सप्रेस के साथ नोडजेएस का उपयोग कर रहा हूं, और जब मैं यूआरएल में विदेशी अक्षरों का उपयोग करता हूं, तो वे स्वचालित रूप से एन्कोड किए जाते हैं।नोडजेएस एक्सप्रेस यूआरएल को एन्कोड करता है -

मैं इसे मूल स्ट्रिंग पर वापस कैसे डीकोड कर सकता हूं?

नोडजेएस को कॉल करने से पहले, मैं पात्रों से बचता हूं।

तो स्ट्रिंग: אובמה

हो जाता है %u05D0%u05D5%u05D1%u05DE%u05D4

पूरे यूआरएल अब लगता है कि: http://localhost:32323/?query=%u05D0%u05D5%u05D1%u05DE%u05D4

अब मेरी NodeJS में, मैं भाग गया स्ट्रिंग %u05D0%u05D5%u05D1%u05DE%u05D4 मिलता है।

var url_parts = url.parse(req.url, true); 
var params = url_parts.query; 
var query = params.query; // '%u05D0%u05D5%u05D1%u05DE%u05D4' 

मैं url और querystring पुस्तकालयों की कोशिश की है लेकिन कुछ भी मेरे मामले फिट करने के लिए लगता है:

यह प्रासंगिक कोड है।

querystring.unescape(query); // still '%u05D0%u05D5%u05D1%u05DE%u05D4' 

उत्तर

9

अद्यतन 25/07/17

escape और unescapedeprecated हैं।

उपयोग:
encodeURIComponent('אובמה') // %D7%90%D7%95%D7%91%D7%9E%D7%94
decodeURIComponent('%D7%90%D7%95%D7%91%D7%9E%D7%94') // אובמה

पुराना जवाब

unescape('%u05D0%u05D5%u05D1%u05DE%u05D4') देता "אובמה"

प्रयास करें:

var querystring = unescape(query);

+0

खैर कि आसान था, धन्यवाद! – AlexD

+5

यह अब लंबे समय से बहिष्कृत है: http://cwestblog.com/2011/05/23/escape-unescape-deprecated/ –

+0

'querystring.unescape (str) 'का उपयोग करें – Rsh

12

आपको विदेशी वर्णों के साथ एक यूआरएल एन्कोड/डीकोड करने के लिए decodeURI() और encodeURI() का उपयोग करना चाहिए।

उपयोग: MDN पर

var query = 'http://google.com'; 
query = encodeURI(query); 
query = decodeURI(query); // http://google.com 

संदर्भ:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURI

+0

मैं एक्सप्रेस का उपयोग कर रहा हूं (जैसा कि बताया गया है) और मेरे पास केवल पैराम्स के साथ आंशिक यूआरएल है। तो 'decodeURI (क्वेरी) 'एक' विकृत यूरी 'त्रुटि देता है। मैं नहीं देखता कि मैं इस मामले में इसका उपयोग कैसे कर सकता हूं। – AlexD

+1

'encodeURIComponent' और' decodeURIComponent' का उपयोग करें। यदि आपके पास पूर्ण यूआरआई नहीं है तो यह काम करेगा, जिसे एन्कोड करने की आवश्यकता है। – Stephan

संबंधित मुद्दे