URL एनकोडिंग/डीकोडिंग उपकरण

अक्सर पूछे जाने वाले प्रश्न

URL एनकोडिंग क्या है?

URL एनकोडिंग एक ऐसी विधि है जिससे वर्णों को एक ऐसे प्रारूप में परिवर्तित किया जाता है जिसे इंटरनेट पर प्रेषित किया जा सकता है। URL केवल ASCII वर्ण सेट का उपयोग करके इंटरनेट पर भेजे जा सकते हैं। चूंकि URL में अक्सर ASCII सेट के बाहर के वर्ण होते हैं, इसलिए उन्हें परिवर्तित करने की आवश्यकता होती है। URL एनकोडिंग असुरक्षित ASCII वर्णों को '%' के बाद दो हेक्साडेसिमल अंकों से बदल देता है।

URL एनकोडिंग कैसे काम करती है?

URL एनकोडिंग असुरक्षित वर्णों को '%' के बाद दो हेक्साडेसिमल अंकों से बदलकर काम करती है, जो वर्ण का UTF-8 एनकोडिंग दर्शाते हैं। उदाहरण के लिए, स्पेस वर्ण %20 के रूप में एनकोड किया जाता है। URL में स्पेस नहीं हो सकते, इसलिए उन्हें या तो प्लस (+) चिह्न या %20 से बदला जाता है। अन्य विशेष वर्णों को उनके संबंधित %xx कोड से बदल दिया जाता है।

आम वर्ण जिन्हें URL एनकोडिंग की आवश्यकता होती है

URL में उपयोग किए जाने पर निम्नलिखित वर्णों को URL एनकोडिंग की आवश्यकता होती है:

वर्णURL एनकोडेडविवरण
Space%20URL एनकोडिंग की आवश्यकता वाला सबसे आम वर्ण
!%21विस्मयादिबोधक चिह्न
"%22दोहरा उद्धरण चिह्न
#%23हैश प्रतीक (URL फ्रैग्मेंट के लिए उपयोग किया जाता है)
$%24डॉलर चिह्न
%%25प्रतिशत चिह्न (URL एनकोडिंग एस्केप वर्ण)
&%26एम्परसैंड (URL पैरामीटर विभाजन के लिए उपयोग)
'%27एकल उद्धरण चिह्न
(%28खुला कोष्ठक
)%29बंद कोष्ठक
+%2Bप्लस चिह्न
,%2Cअल्पविराम
/%2Fस्लैश (URL पथ विभाजक)
=%3Dबराबर चिह्न (URL पैरामीटर असाइनमेंट)
?%3Fप्रश्नवाचक चिह्न (URL क्वेरी स्ट्रिंग प्रारंभ)

विभिन्न प्रोग्रामिंग भाषाओं में URL एनकोडिंग कार्यान्वयन

यहां विभिन्न प्रोग्रामिंग भाषाओं में URL एनकोडिंग और डीकोडिंग के उदाहरण हैं:

Go

package main

import (
    "fmt"
    "net/url"
)

func main() {
    // Encode a URL
    text := "Hello World! Special chars: &?=/";
    encoded := url.QueryEscape(text)
    fmt.Println("Encoded:", encoded)

    // Decode a URL
    decoded, err := url.QueryUnescape(encoded)
    if err == nil {
        fmt.Println("Decoded:", decoded)
    }
}

C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

// Function to URL-encode a string
char *url_encode(char *str) {
    char *encoded = malloc(strlen(str) * 3 + 1);
    char *pstr = str;
    char *pbuf = encoded;

    while (*pstr) {
        if (isalnum(*pstr) || *pstr == '-' || *pstr == '_' || *pstr == '.' || *pstr == '~') {
            *pbuf++ = *pstr;
        } else if (*pstr == ' ') {
            *pbuf++ = '+';
        } else {
            sprintf(pbuf, "%%%.2X", *pstr);
            pbuf += 3;
        }
        pstr++;
    }
    *pbuf = '\\0';

    return encoded;
}

int main() {
    char *text = "Hello World! Special chars: &?=/";
    char *encoded = url_encode(text);

    printf("Original: %s\\n", text);
    printf("Encoded: %s\\n", encoded);

    free(encoded);
    return 0;
}

PHP

<?php
// URL encoding
$text = "Hello World! Special chars: &?=/";
$encoded = urlencode($text);
echo "Encoded: " . $encoded . "\\n";

// URL decoding
$decoded = urldecode($encoded);
echo "Decoded: " . $decoded . "\\n";
?>

Python

import urllib.parse

# URL encoding
text = "Hello World! Special chars: &?=/"
encoded = urllib.parse.quote(text)
print(f"Encoded: {encoded}")

# URL decoding
decoded = urllib.parse.unquote(encoded)
print(f"Decoded: {decoded}")

JavaScript

// URL encoding
const text = "Hello World! Special chars: &?=/";
const encoded = encodeURIComponent(text);
console.log("Encoded:", encoded);

// URL decoding
const decoded = decodeURIComponent(encoded);
console.log("Decoded:", decoded);

TypeScript

// URL encoding
const text: string = "Hello World! Special chars: &?=/";
const encoded: string = encodeURIComponent(text);
console.log("Encoded:", encoded);

// URL decoding
const decoded: string = decodeURIComponent(encoded);
console.log("Decoded:", decoded);

encodeURI और encodeURIComponent के बीच क्या अंतर है?

encodeURI() एक पूर्ण URI को एनकोड करने के लिए डिज़ाइन किया गया है, इसलिए यह URL में विशेष अर्थ वाले वर्णों को एनकोड नहीं करता है, जैसे /, ?, :, @, &, =, +, $ और #। इसके विपरीत, encodeURIComponent() सभी विशेष वर्णों को एनकोड करता है, जिससे यह URL के भागों, जैसे क्वेरी स्ट्रिंग पैरामीटर, को एनकोड करने के लिए उपयुक्त है। क्वेरी पैरामीटर को एनकोड करते समय, सभी विशेष वर्णों के सही ढंग से एनकोड होने को सुनिश्चित करने के लिए हमेशा encodeURIComponent() का उपयोग करें।