मुख्य सामग्री पर जाएँ

URL-एन्कोडेड स्ट्रिंग को डिकोड कैसे करें

डिकोडिंग प्रतिशत एन्कोडिंग को उलट देती है: हर %XX अनुक्रम एक बाइट बनता है और बाइट्स को UTF-8 टेक्स्ट के रूप में पढ़ा जाता है। घटक मोड decodeURIComponent() का उपयोग करता है, इसलिए परिणाम ठीक मूल मान होता है।

हल किया गया उदाहरण

कई बाइट वाले UTF-8 अनुक्रम एक ही वर्ण बन जाते हैं।

इनपुट
caf%C3%A9%20%26%20cr%C3%A8me
परिणाम · decodeURIComponent()
café & crème

%20 स्पेस बन जाता है, लेकिन + शाब्दिक प्लस चिह्न ही रहता है।

इनपुट
a+b%20c
परिणाम · decodeURIComponent()
a+b c

आख़िरी अनुक्रम में एक हेक्स अंक कम है, इसलिए टूल त्रुटि दिखाता है।

इनपुट
%E0%A4%A
परिणाम · decodeURIComponent()
एन्कोड किया गया URL अमान्य है

छूटा हुआ अंक जोड़ने पर तीनों बाइट एक देवनागरी अक्षर में डिकोड होते हैं।

इनपुट
%E0%A4%A4
परिणाम · decodeURIComponent()
त

टूल इसे कैसे संभालता है

  • हर %XX अनुक्रम एक बाइट है और लगातार बाइट्स एक साथ UTF-8 के रूप में डिकोड होते हैं, इसलिए %C3%A9 é बन जाता है।
  • प्लस चिह्न को स्पेस नहीं माना जाता: + वैसा ही रहता है। अगर टेक्स्ट किसी HTML फ़ॉर्म से आया है, तो डिकोड करने से पहले + को %20 से बदलें।
  • अगर कोई अनुक्रम अधूरा है या मान्य UTF-8 नहीं है, तो पूरा इनपुट त्रुटि के साथ अस्वीकार हो जाता है; कुछ भी आधा डिकोड नहीं होता।
  • पूर्ण URL मोड (decodeURI) %26, %2F और %3F जैसे आरक्षित वर्णों के एस्केप को एन्कोडेड ही रहने देता है, ताकि URL की संरचना न बदले।

URL एन्कोडिंग गाइड