URL एनकोड और डिकोड करें
URL के लिए टेक्स्ट को परसेंट-एनकोड करें या वापस पढ़ें। उन तीन स्कीम में से चुनें, जिनमें सच में फर्क है, और पूरी सूची लाइन-दर-लाइन कन्वर्ट करें।
फाइलें यहां छोड़ें
.txt · 5 MB तक
URL एनकोड और डिकोड कैसे करें
- 1
अपना टेक्स्ट या URL की सूची पेस्ट करें
एक वैल्यू हो या पचास, हर लाइन में एक। .txt फाइल भी चलती है, और UTF-8 या Windows-1251, दोनों पढ़े जाते हैं।
- 2
एनकोड या डिकोड और स्कीम चुनें
एक वैल्यू के लिए कंपोनेंट, पूरे पते के लिए पूरा URI, POST बॉडी के लिए form-urlencoded।
- 3
परिणाम कॉपी करें
सीधे कॉपी करें या टेक्स्ट फाइल के रूप में डाउनलोड करें। दोनों तरह से लाइनों का ढांचा वैसा ही रहता है।
तीन स्कीम, और गलत चुनने से लिंक क्यों टूटते हैं
कंपोनेंट एनकोडिंग हर उस अक्षर को एस्केप करती है, जो unreserved श्रेणी में नहीं है, : / ? # & = समेत। क्वेरी स्ट्रिंग में जाने वाली एक वैल्यू के लिए यही सही है, पर पूरे पते के लिए गलत। https://example.com/a?b=1 को कंपोनेंट की तरह एनकोड करें, तो ढांचे का हर अक्षर परसेंट सीक्वेंस बन जाता है, और बची हुई स्ट्रिंग अब URL नहीं रहती। पूरा URI एनकोडिंग ढांचे के इन अक्षरों को नहीं छूती और सिर्फ स्पेस और ASCII के बाहर के अक्षरों को एस्केप करती है। जब इनपुट पहले से पूरा पता हो, तो यही चाहिए। form-urlencoded कंपोनेंट एनकोडिंग ही है, बस एक बदलाव के साथ: स्पेस प्लस चिह्न बन जाते हैं, जैसा उस फॉर्मेट में जरूरी है, जिसमें HTML फॉर्म डेटा भेजते हैं।
प्लस चिह्न के सच में दो मतलब हो सकते हैं
form-urlencoded बॉडी में + का मतलब स्पेस है। पाथ सेगमेंट में + का मतलब असली प्लस है। सिर्फ स्ट्रिंग देखकर डिकोडिंग इन दोनों में फर्क नहीं कर सकती, इसीलिए यह अनुमान नहीं, सेटिंग है: form-urlencoded चुनें या “+ को स्पेस मानें” चालू करें, तो प्लस स्पेस बन जाते हैं; बंद रखें, तो वैसे ही रहते हैं। एनकोडिंग में उल्टी दिशा का ऐसा ही जाल है: इनपुट का असली + स्पेस के प्लस बनने से पहले %2B बनना चाहिए, वरना एनकोडर से आने-जाने में वह चुपचाप स्पेस बन जाता है। यहां यह क्रम तय है, इसलिए एनकोड और फिर डिकोड करने पर आपको हमेशा ठीक वही मिलता है, जिससे आपने शुरू किया था।
टूटे एस्केप, सटीक जगह के साथ
अकेला %, जिसके बाद दो hex अंक न हों, या %E0%A4 जैसा अधूरा मल्टी-बाइट सीक्वेंस स्ट्रिंग को डिकोड होने लायक नहीं छोड़ता, और ब्राउजर का अपना डिकोडर बिना जगह बताए एक्सेप्शन फेंक देता है। सख्त मोड पहली गड़बड़ी की लाइन और जगह बताता है, ताकि लंबी सूची में आप उसे ढूंढ सकें। नरम मोड बिना जोड़ी वाले % को साधारण परसेंट चिह्न मानता है और बाकी टेक्स्ट लौटा देता है। जब इनपुट असली URL नहीं, लॉग की लाइन हो, तो अक्सर यही चाहिए। लाइन-दर-लाइन काम करना इसी वजह से जरूरी है: पचास की सूची में एक गलत एंट्री हो, तो पता चलता है कि कौन-सी।
टेक्स्ट इसी टैब में रहता है
कन्वर्जन ब्राउजर के अपने एनकोडिंग फंक्शन से होता है और पूरी तरह लोकल रूप से चलता है। क्वेरी स्ट्रिंग में अक्सर टोकन और पहचान वाले नंबर होते हैं, इसलिए साफ-साफ कहना जरूरी है: कुछ भी अपलोड, लॉग या सेव नहीं होता।
अक्सर पूछे जाने वाले सवाल
encodeURI और encodeURIComponent में क्या फर्क है?
encodeURIComponent ढांचे के अक्षरों : / ? # & = को भी एस्केप करता है, जो क्वेरी स्ट्रिंग के अंदर एक वैल्यू के लिए सही है। encodeURI उन्हें नहीं छूता, जो तब सही है, जब इनपुट पूरा पता हो और उसे सिर्फ सुरक्षित बनाना हो।
+ कभी-कभी स्पेस क्यों होता है?
क्योंकि HTML फॉर्म भेजने में इस्तेमाल होने वाला form-urlencoded फॉर्मेट इसे ऐसे ही परिभाषित करता है। URL में बाकी जगह + असली प्लस है। सिर्फ स्ट्रिंग से यह पता नहीं चलता कि कौन-सा नियम लागू है, इसलिए डिकोडिंग में यह साफ चुनाव के रूप में दिया गया है।
गलत परसेंट-एनकोडिंग की गड़बड़ी आए तो क्या करें?
संदेश पहले टूटे एस्केप की लाइन और जगह बताता है। आमतौर पर यह अकेला % होता है, जो %25 होना चाहिए था, या अधूरा मल्टी-बाइट सीक्वेंस। उसे ठीक करें, या बाकी टेक्स्ट वापस पाने के लिए नरम डिकोडिंग पर जाएं।
क्या यह URL की सूची पर काम करता है?
हां, और डिफॉल्ट यही है। हर लाइन अलग से कन्वर्ट होती है, खाली लाइनें खाली रहती हैं, और लाइन ब्रेक कभी एस्केप नहीं होते। सूची डालें, सूची ही मिलेगी।
क्या लाइन ब्रेक बने रहते हैं?
लाइन-दर-लाइन मोड में हां, आखिरी न्यूलाइन समेत। यह मोड बंद करें, तो पूरा इनपुट एक वैल्यू माना जाता है, और उसके अपने लाइन ब्रेक परिणाम में %0A बन जाते हैं।
पते में सिरिलिक अक्षर कैसे डिकोड करें?
पता पेस्ट करें और कंपोनेंट स्कीम से डिकोड करें। %D0%BF%D1%80%D0%B8 जैसा परसेंट-एनकोड किया गया UTF-8 वापस मूल अक्षरों में बदल जाता है; दोनों दिशाओं में आना-जाना लॉसलेस है।
क्या मेरा टेक्स्ट कहीं भेजा जाता है?
नहीं। एनकोडिंग और डिकोडिंग दोनों आपके ब्राउजर में बने फंक्शन से इसी टैब में लोकल रूप से होती हैं। न सर्वर शामिल होता है, न कुछ सेव होता है।