प्रतिशत एन्कोडिंग क्या करती है
URL में सिर्फ़ सीमित अक्षर चलते हैं। बाक़ी सब UTF-8 बाइट में बदलकर हर बाइट को प्रतिशत चिह्न और दो हेक्स अंकों से लिखा जाता है। खाली जगह %20 बनती है, और देवनागरी का एक अक्षर, जो तीन बाइट का है, %E0%A4%95 जैसे नौ अक्षर बन जाता है।
यह औजार पूरा पता एन्कोड करने और सिर्फ एक मान एन्कोड करने में फर्क करता है। पूरे पते में तिरछी रेखा और प्रश्नचिह्न जैसे बनावटी अक्षर बचे रहने चाहिए; किसी एक मान में, मान लीजिए खोज शब्द में, उन्हीं अक्षरों को भी एन्कोड करना पड़ेगा वरना पैरामीटर टूट जाएगा।
डिकोडिंग उल्टी दिशा में चलती है, हर प्रतिशत तिकड़ी को वापस बाइट बनाकर नतीजे को UTF-8 के रूप में पढ़ती है। इसका सबसे आम काम लॉग या रेफरर में दर्ज पते से मूल खोज शब्द वापस निकालना है।
एन्कोडिंग का दायरा गलत चुनना
किसी एक मान को पूरा पता मानकर एन्कोड करने से पैरामीटर कट जाता है। अगर खोज शब्द में ऐम्परसैंड है और वह ज्यों का त्यों छोड़ दिया गया, तो सर्वर वहीं से नया पैरामीटर पढ़ लेता है। क्वेरी के मानों को घटक स्तर की एन्कोडिंग चाहिए।
उल्टा भी असफल होता है: पूरे पते को घटक स्तर पर एन्कोड करने से तिरछी रेखाएँ और कोलन बदल जाते हैं और लिंक खुलना बंद हो जाता है। घटक एन्कोडिंग तब सही है जब कोई तैयार URL दूसरे URL के भीतर पैरामीटर बनकर जा रहा हो, और तब गलत जब नतीजा सीधे पते वाली पट्टी में जाए।
पहले से एन्कोड किए पाठ को दोबारा एन्कोड करने से हर प्रतिशत चिह्न %25 बन जाता है और दोहरी परत बन जाती है। निकले हुए पाठ में %25 कई बार दिखना लगभग हमेशा यही बताता है, और मूल वापस पाने के लिए फिर दो बार डिकोड करना पड़ता है।