पलायन()
इसका उपयोग न करें!
escape()
खंड B.2.1.2 भागने में परिभाषित किया गया है और अनुलग्नक B का परिचय पाठ कहता है:
... इस अनुलग्नक में निर्दिष्ट सभी भाषा विशेषताओं और व्यवहारों में एक या एक से अधिक अवांछनीय विशेषताएं हैं और विरासत के उपयोग की अनुपस्थिति में इस विनिर्देश को हटा दिया जाएगा। ...
... प्रोग्रामर को नए ECMAScript कोड लिखते समय इन सुविधाओं और व्यवहारों के अस्तित्व का उपयोग या मान नहीं करना चाहिए ...।
व्यवहार:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/escape
विशेष वर्ण इसके अपवाद के साथ एन्कोड किए गए हैं: @ * _ + -।)
वर्णों के लिए हेक्साडेसिमल फॉर्म, जिसका कोड यूनिट मूल्य 0xFF या उससे कम है, दो अंकों का भागने का क्रम है %xx
:।
अधिक कोड इकाई वाले वर्णों के लिए, चार अंकों के प्रारूप %uxxxx
का उपयोग किया जाता है। इसे क्वेरी स्ट्रिंग के भीतर अनुमति नहीं है (जैसा कि RFC3986 में परिभाषित किया गया है ):
query = *( pchar / "/" / "?" )
pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
pct-encoded = "%" HEXDIG HEXDIG
sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
/ "*" / "+" / "," / ";" / "="
एक प्रतिशत चिन्ह की अनुमति केवल तभी दी जाती है जब उसे सीधे दो हेक्सिडिट्स द्वारा पीछा किया जाता u
है , उसके बाद प्रतिशत को अनुमति नहीं दी जाती है।
encodeURI ()
जब आप एक कामकाजी URL चाहते हैं, तो encodeURI का उपयोग करें। यह कॉल करें:
encodeURI("http://www.example.org/a file with spaces.html")
लेना:
http://www.example.org/a%20file%20with%20spaces.html
क्योंकि यह URL को नष्ट कर देगा और वापस लौटेगा, तो encodeURIComponent को कॉल न करें
http%3A%2F%2Fwww.example.org%2Fa%20file%20with%20spaces.html
encodeURIComponent ()
जब आप URL पैरामीटर के मान को एनकोड करना चाहते हैं, तो encodeURIComponent का उपयोग करें।
var p1 = encodeURIComponent("http://example.org/?a=12&b=55")
तब आप अपनी जरूरत का URL बना सकते हैं:
var url = "http://example.net/?param1=" + p1 + "¶m2=99";
और आपको यह पूरा URL मिलेगा:
http://example.net/?param1=http%3A%2F%2Fexample.org%2F%Ffa%3D12%26b%3D55¶m2=99
ध्यान दें कि एनकोडरिकम्पोनेंट '
चरित्र से बच नहीं जाता है। एक सामान्य बग का उपयोग html विशेषताएँ बनाने के लिए किया जाता है href='MyUrl'
, जैसे कि एक इंजेक्शन बग को पीड़ित कर सकता है। यदि आप स्ट्रिंग्स से html का निर्माण कर रहे हैं, तो या तो विशेषता उद्धरण "
के '
लिए उपयोग करें, या एन्कोडिंग की एक अतिरिक्त परत जोड़ें ( '
% 27 के रूप में एन्कोड किया जा सकता है)।
इस प्रकार की एन्कोडिंग के बारे में अधिक जानकारी के लिए आप देख सकते हैं: http://en.wikipedia.org/wiki/Percent-encoding
encodeURIComponent("var1=value1&var2=value2")
है नहीं सामान्य उपयोग के मामले। यह उदाहरण एन्कोड करेगा=
और&
, जो संभवत: वैसा नहीं था जैसा कि इरादा था!encodeURIComponent
आम तौर पर प्रत्येक कुंजी मूल्य जोड़ी (प्रत्येक के बाद का हिस्सा=
) में मूल्य के लिए अलग से लागू किया जाता है ।