URL एन्कोडेड कैरेक्टर्स की संपूर्ण तालिका (ASCII + Unicode)
URL एन्कोडेड कैरेक्टर्स की संपूर्ण संदर्भ तालिका। इसमें सभी प्रिंट करने योग्य ASCII कैरेक्टर (32-126), सामान्य Unicode कैरेक्टर, और RFC 3986 द्वारा परिभाषित उनके percent-encoded समकक्ष शामिल हैं।
ASCII कंट्रोल और विशेष कैरेक्टर
0-31 की सीमा वाले ASCII कैरेक्टर और कैरेक्टर 127 कंट्रोल कैरेक्टर होते हैं। ये प्रिंट करने योग्य नहीं होते और URLs में इन्हें हमेशा percent-encode किया जाना चाहिए। URL संदर्भों में सबसे अधिक सामने आने वाले कंट्रोल कैरेक्टर हैं स्पेस (ASCII 32), हॉरिजॉन्टल टैब (ASCII 9), और न्यूलाइन कैरेक्टर (ASCII 10 और 13)।
RFC 3986 के अनुसार, कोई भी ऐसा ऑक्टेट जो unreserved कैरेक्टर, अपने आरक्षित प्रयोजन के लिए उपयोग किया गया reserved कैरेक्टर, या percent-encoded ट्रिपलेट नहीं है, उसे percent-encode किया जाना चाहिए। व्यवहार में, इसका अर्थ है कि URI कंपोनेंट्स में अधिकांश गैर-अल्फ़ान्यूमेरिक कैरेक्टर को एन्कोड किया जाना चाहिए।
| कैरेक्टर | ASCII कोड | URL एन्कोडेड | विवरण |
|---|---|---|---|
| (tab) | 9 | %09 |
हॉरिजॉन्टल टैब |
| (LF) | 10 | %0A |
लाइन फीड |
| (CR) | 13 | %0D |
कैरिज रिटर्न |
| (space) | 32 | %20 |
स्पेस |
प्रिंट करने योग्य ASCII कैरेक्टर
नीचे सभी प्रिंट करने योग्य ASCII कैरेक्टर (कोड 32-126) और उनके URL-एन्कोडेड रूपों का संपूर्ण संदर्भ दिया गया है। RFC 3986 में "unreserved" के रूप में चिह्नित कैरेक्टर को एन्कोडिंग की आवश्यकता नहीं होती। Reserved कैरेक्टर को उनके आरक्षित प्रयोजन के बाहर उपयोग किए जाने पर एन्कोड किया जाना चाहिए।
| कैरेक्टर | ASCII | Hex | URL एन्कोडेड | प्रकार |
|---|---|---|---|---|
| (space) | 32 | 20 | %20 |
विशेष |
| ! | 33 | 21 | %21 |
Reserved |
| " | 34 | 22 | %22 |
असुरक्षित |
| # | 35 | 23 | %23 |
Reserved |
| $ | 36 | 24 | %24 |
Reserved |
| % | 37 | 25 | %25 |
विशेष |
| & | 38 | 26 | %26 |
Reserved |
| ' | 39 | 27 | %27 |
Reserved |
| ( | 40 | 28 | %28 |
Reserved |
| ) | 41 | 29 | %29 |
Reserved |
| * | 42 | 2A | %2A |
Reserved |
| + | 43 | 2B | %2B |
Reserved |
| , | 44 | 2C | %2C |
Reserved |
| - | 45 | 2D | %2D |
Unreserved |
| . | 46 | 2E | %2E |
Unreserved |
| / | 47 | 2F | %2F |
Reserved |
| 0-9 | 48-57 | 30-39 | आवश्यक नहीं | Unreserved |
| : | 58 | 3A | %3A |
Reserved |
| ; | 59 | 3B | %3B |
Reserved |
| < | 60 | 3C | %3C |
असुरक्षित |
| = | 61 | 3D | %3D |
Reserved |
| > | 62 | 3E | %3E |
असुरक्षित |
| ? | 63 | 3F | %3F |
Reserved |
| @ | 64 | 40 | %40 |
Reserved |
| A-Z | 65-90 | 41-5A | आवश्यक नहीं | Unreserved |
| [ | 91 | 5B | %5B |
Reserved |
| \ | 92 | 5C | %5C |
असुरक्षित |
| ] | 93 | 5D | %5D |
Reserved |
| ^ | 94 | 5E | %5E |
असुरक्षित |
| _ | 95 | 5F | %5F |
Unreserved |
| ` | 96 | 60 | %60 |
असुरक्षित |
| a-z | 97-122 | 61-7A | आवश्यक नहीं | Unreserved |
| { | 123 | 7B | %7B |
असुरक्षित |
| | | 124 | 7C | %7C |
असुरक्षित |
| } | 125 | 7D | %7D |
असुरक्षित |
| ~ | 126 | 7E | %7E |
Unreserved |
सामान्य Unicode एन्कोडिंग
Unicode कैरेक्टर को पहले उनके UTF-8 बाइट अनुक्रम में एन्कोड किया जाता है, फिर प्रत्येक बाइट को अलग-अलग percent-encode किया जाता है। मल्टी-बाइट कैरेक्टर कई percent-encoded ट्रिपलेट उत्पन्न करते हैं।
| कैरेक्टर | विवरण | UTF-8 बाइट्स | URL एन्कोडेड |
|---|---|---|---|
| a with umlaut | Latin Small Letter A with Diaeresis | C3 A4 | %C3%A4 |
| n with tilde | Latin Small Letter N with Tilde | C3 B1 | %C3%B1 |
| e with acute | Latin Small Letter E with Acute | C3 A9 | %C3%A9 |
| u with umlaut | Latin Small Letter U with Diaeresis | C3 BC | %C3%BC |
| Euro sign | Euro Sign | E2 82 AC | %E2%82%AC |
| Pound sign | Pound Sign | C2 A3 | %C2%A3 |
| Yen sign | Yen Sign | C2 A5 | %C2%A5 |
| CJK zhong | CJK Unified Ideograph (middle) | E4 B8 AD | %E4%B8%AD |
| Cyrillic Ya | Cyrillic Capital Letter Ya | D0 AF | %D0%AF |
| Arabic Ba | Arabic Letter Ba | D8 A8 | %D8%A8 |
मल्टी-बाइट कैरेक्टर कैसे एन्कोड किए जाते हैं
UTF-8 एक चर-लंबाई (variable-length) एन्कोडिंग योजना का उपयोग करता है। ASCII सीमा (0-127) के कैरेक्टर एक बाइट का उपयोग करते हैं। इस सीमा के बाहर के कैरेक्टर दो से चार बाइट का उपयोग करते हैं। percent-encoding करते समय, UTF-8 प्रतिनिधित्व की प्रत्येक बाइट एक अलग %XX ट्रिपलेट बन जाती है।
दो-बाइट कैरेक्टर (U+0080 से U+07FF): इनमें अधिकांश Latin extended, Greek, Cyrillic, और Arabic कैरेक्टर शामिल हैं। उदाहरण के लिए, जर्मन अक्षर sharp s (U+00DF) UTF-8 बाइट्स C3 9F में एन्कोड होता है, जो %C3%9F बन जाता है।
तीन-बाइट कैरेक्टर (U+0800 से U+FFFF): इनमें CJK कैरेक्टर, अधिकांश प्रतीक, और Basic Multilingual Plane शामिल हैं। उदाहरण के लिए, जापानी हिरागाना कैरेक्टर (U+3042) UTF-8 बाइट्स E3 81 82 में एन्कोड होता है, जो %E3%81%82 बन जाता है।
चार-बाइट कैरेक्टर (U+10000 से U+10FFFF): इनमें इमोजी और पूरक (supplementary) कैरेक्टर शामिल हैं। उदाहरण के लिए, ग्रिनिंग फेस इमोजी (U+1F600) UTF-8 बाइट्स F0 9F 98 80 में एन्कोड होता है, जो %F0%9F%98%80 बन जाता है।
// मल्टी-बाइट एन्कोडिंग का JavaScript प्रदर्शन
console.log(encodeURIComponent('u with umlaut'));
// दो बाइट: "%C3%BC"
console.log(encodeURIComponent('CJK char'));
// तीन बाइट: "%E4%B8%AD"
console.log(encodeURIComponent('emoji'));
// चार बाइट: "%F0%9F%98%80"
// आप डिकोड करके सत्यापित कर सकते हैं
console.log(decodeURIComponent('%C3%BC')); // u with umlaut
console.log(decodeURIComponent('%E4%B8%AD')); // CJK char