यूआरएल को कोड में बदलने का तरीका

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

कुछ वर्ण यूआरएल का हिस्सा नहीं हो सकते (उदाहरण के लिए, स्पेस) और कुछ दूसरे वर्णों का यूआरएल में खास मतलब होता है. एचटीएमएल फ़ॉर्म में, नाम = को किसी वैल्यू से अलग करने के लिए इस्तेमाल किया जाता है. यूआरआई सामान्य सिंटैक्स इस समस्या से निपटने के लिए यूआरएल एन्कोडिंग का इस्तेमाल करता है, जबकि एचटीएमएल फ़ॉर्म में ऐसे सभी वर्णों के लिए प्रतिशत एन्कोडिंग लागू करने के बजाय कुछ और बदलाव किए जाते हैं.

उदाहरण के लिए, किसी स्ट्रिंग में मौजूद स्पेस को %20 के साथ एन्कोड किया जाता है या उसे प्लस के निशान (+) से बदला जाता है. अगर आप पाइप वर्ण (|) को सेपरेटर के तौर पर इस्तेमाल करते हैं, तो पाइप को %7C के तौर पर कोड में बदलना न भूलें. स्ट्रिंग में मौजूद कॉमा को %2C के तौर पर एन्कोड किया जाना चाहिए.

हमारा सुझाव है कि आप अपने प्लैटफ़ॉर्म के लिए सामान्य यूआरएल बनाने वाली लाइब्रेरी का इस्तेमाल करें. इससे आपके यूआरएल अपने-आप कोड में बदल जाएंगे. इससे यह पक्का हो जाता है कि आपके प्लैटफ़ॉर्म के लिए यूआरएल सही तरीके से एस्केप किए गए हैं.

एक मान्य यूआरएल बनाना

आपको लग सकता है कि कोई यूआरएल मान्य है और यूआरएल अपने-आप बताने वाला है, लेकिन ऐसा नहीं है. उदाहरण के लिए, किसी ब्राउज़र में पता बार में डाले गए यूआरएल में विशेष वर्ण (जैसे, "上海+中國") हो सकते हैं. ब्राउज़र को ट्रांसमिशन से पहले, उन वर्णों को अंदरूनी तौर पर किसी दूसरी एन्कोडिंग में बदलना होगा. एक ही टोकन के ज़रिए, ऐसा कोई भी कोड जो UTF-8 इनपुट जनरेट करता है या स्वीकार करता है, वह UTF-8 वर्णों वाले यूआरएल को "कोट; इस प्रोसेस को यूआरएल-एन्कोडिंग या प्रतिशत-एन्कोडिंग कहा जाता है.

खास वर्ण

हमें विशेष वर्णों का अनुवाद करना होगा, क्योंकि सभी यूआरएल को यूनिफ़र रिसोर्स आइडेंटिफ़ायर (यूआरआई) की विशेषताओं में दिए गए सिंटैक्स के मुताबिक होना चाहिए. इसका मतलब यह है कि यूआरएल में ASCII वर्णों का सिर्फ़ एक खास सबसेट होना चाहिए: जाने-पहचाने अक्षर और अंक, और यूआरएल में कुछ वर्णों को कंट्रोल कैरेक्टर के तौर पर इस्तेमाल करने के लिए, कुछ रिज़र्व किए गए वर्णों का इस्तेमाल करना. इस टेबल में इन वर्णों के बारे में खास जानकारी होती है:

मान्य यूआरएल वर्णों के बारे में खास जानकारी
सेट करेंवर्णयूआरएल का इस्तेमाल
अक्षर और अंक दोनों शामिल हो सकते हैं a b c d e f g h i j j l m h na p q k r इनमें l w z w w w h w 9 बना r 4 s 4 d टेक्स्ट स्ट्रिंग, स्कीम यूसेज (http), पोर्ट (8080), वगैरह.
गैर-आरक्षित - _ . ~ टेक्स्ट स्ट्रिंग
बुक किया हुआ ! * और #39; ( ) ; : @ & = + $ , / ? % # [ ] वर्णों और/या टेक्स्ट स्ट्रिंग को कंट्रोल करना

मान्य यूआरएल बनाते समय, आपको यह पक्का करना होगा कि उसमें सिर्फ़ वही वर्ण शामिल हों जो मान्य यूआरएल वर्ण टेबल में दिए गए हैं. वर्णों के इस सेट का इस्तेमाल करने के लिए यूआरएल बनाने से आम तौर पर दो समस्याएं आती हैं. इनमें से एक गड़बड़ी और बदलाव का उदाहरण है:

  • आप जिन वर्णों को हैंडल करना चाहते हैं वे ऊपर दिए गए सेट से बाहर मौजूद हैं. उदाहरण के लिए, 上海+中國 जैसी विदेशी भाषाओं के वर्णों को, ऊपर दिए गए वर्णों का इस्तेमाल करके एन्कोड किया जाना चाहिए. लोकप्रिय कन्वेंशन के मुताबिक, स्पेस के बारे में अक्सर प्लस '+' वर्ण का इस्तेमाल करके भी बताया जाता है. यूआरएल के अंदर इसकी अनुमति नहीं है.
  • वर्ण ऊपर दिए गए वर्णों में रिज़र्व किए गए वर्णों के तौर पर मौजूद होते हैं, लेकिन उनका इस्तेमाल लिटरल तौर पर किया जाना चाहिए. उदाहरण के लिए, क्वेरी में स्ट्रिंग की शुरुआत दिखाने के लिए, ? का इस्तेमाल यूआरएल में किया जाता है. अगर आपको स्ट्रिंग और कोट का इस्तेमाल करना है, तो रहस्य और &कोश का इस्तेमाल करें. आपको '?' वर्ण को कोड में बदलना होगा.

सभी वर्ण, यूआरएल-कोड में बदले जाते हैं. इसके लिए, '%' वर्ण का इस्तेमाल किया जाता है. साथ ही, उनके UTF-8 वर्ण से जुड़े दो-वर्ण की हेक्स वैल्यू का इस्तेमाल किया जाता है. उदाहरण के लिए, UTF-8 में 上海+中國 को यूआरएल के रूप में %E4%B8%8A%E6%B5%B7%2B%E4%B8%AD%E5%9C%8B में बदला जाएगा. ? and the Mysterians स्ट्रिंग को %3F+and+the+Mysterians या %3F%20and%20the%20Mysterians के तौर पर यूआरएल कोड में बदला जाएगा.

सामान्य वर्ण, जिन्हें कोड में बदलना है

कुछ सामान्य वर्ण जिन्हें कोड में बदलना ज़रूरी है:

असुरक्षित वर्ण कोड में बदला गया मान
स्पेस %20
" %22
< %3C
> %3E
# %23
% %25
| %7C

कभी-कभी उपयोगकर्ता इनपुट से मिलने वाले यूआरएल को बदलना बहुत मुश्किल होता है. उदाहरण के लिए, कोई उपयोगकर्ता किसी पते को "5th&Main St." के तौर पर डाल सकता है. आम तौर पर, आपको अपना यूआरएल ऐसा बनाना चाहिए जिससे कि उसके हिस्से को लिटरल वर्ण मानें.

इसके अलावा, Google Maps Platform की सभी वेब सेवाओं और स्टैटिक वेब एपीआई के लिए, यूआरएल 8192 वर्णों तक सीमित हैं. ज़्यादातर सेवाओं के लिए, इस वर्ण सीमा का इस्तेमाल शायद ही कभी किया जाएगा. हालांकि, ध्यान दें कि कुछ सेवाओं में कई पैरामीटर होते हैं, जिनकी वजह से लंबे यूआरएल बन सकते हैं.