URL एन्कोडिंग और डिकोडिंग

विशेष वर्णों और गैर-ASCII टेक्स्ट को सुरक्षित रूप से संभालने के लिए URL स्ट्रिंग्स को एन्कोड और डिकोड करें, क्वेरी पैरामीटर और पाथ ट्रांसमिशन के लिए आदर्श।

एन्कोड

एन्कोडिंग मोड

डिकोड

उपयोग कैसे करें

URL एन्कोडिंग URL में सुरक्षित ट्रांसमिशन के लिए विशेष या गैर-ASCII वर्णों को %XX प्रारूप में बदलती है।
टेक्स्ट को URL-सुरक्षित प्रारूप (जैसे क्वेरी पैरामीटर के लिए) में बदलने के लिए 'एन्कोड' का उपयोग करें।
%XX सीक्वेंस को उनके मूल वर्णों में पुनर्स्थापित करने के लिए 'डिकोड' का उपयोग करें।
सामान्य परिदृश्य: क्वेरी पैरामीटर संभालना, फॉर्म डेटा ट्रांसमिशन, API कॉल आदि।

त्वरित उदाहरण

मूल टेक्स्ट
https://example.com/search?q=你好世界&type=text
URL एन्कोडेड
https://example.com/search?q=%E4%BD%A0%E5%A5%BD%E4%B8%96%E7%95%8C&type=text

विशेषताएं

  • दो एन्कोडिंग मोड: encodeURIComponent और encodeURI
  • लचीली स्पेस हैंडलिंग: + या %20 के रूप में एन्कोड करें
  • इनपुट/आउटपुट लंबाई स्टैटिस्टिक्स के साथ रीयल-टाइम रूपांतरण
  • कॉपी/क्लियर बटन और द्विदिश पैनल-भेजें कार्यक्षमता
  • DaisyUI मल्टी-थीम के साथ पूर्ण अंतर्राष्ट्रीयकरण समर्थन

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

URL एन्कोडिंग वर्णों को %XX प्रतिशत-एन्कोडेड अनुक्रमों में परिवर्तित करती है ताकि URLs में सुरक्षित प्रसारण सुनिश्चित किया जा सके।

encodeURIComponent अलग-अलग घटकों (उदाहरण के लिए, किसी प्रश्न पैरामीटर का मान) के लिए उपयुक्त है और अधिकांश गैर-अल्फ़ान्यूमेरिक वर्णों को एन्कोड करता है।

encodeURI पूर्ण URI स्ट्रिंग के लिए डिज़ाइन किया गया है और संरचनात्मक अर्थ वाले आरक्षित वर्णों, जैसे ?, &, =, और / को संरक्षित करता है।

सामान्य उपयोग के मामले

  • क्वेरी पैरामीटर बनाना (उदाहरण के लिए, खोज कीवर्ड, फ़िल्टर शर्तें)
  • GET/POST के माध्यम से फॉर्म डेटा को एन्कोड करना और प्रसारित करना
  • API अनुरोध पैरामीटर को एन्कोड करना
  • URL पथ सेगमेंट में उपयोगकर्ता इनपुट को सुरक्षित रूप से डालना

FAQs और गलतियां

  • encodeURI vs encodeURIComponent: अलग-अलग हिस्सों के लिए घटक एन्कोडिंग का उपयोग करें, और पूर्ण URLs के लिए URI एन्कोडिंग का उपयोग करें
  • स्पेस और +: application/x-www-form-urlencoded में, क्वेरी स्ट्रिंग्स में स्पेस को आमतौर पर + के रूप में दर्शाया जाता है
  • दोहरी डिकोडिंग से बचें: बार-बार डिकोडिंग डेटा को खराब कर सकती है
  • अमान्य प्रतिशत अनुक्रम त्रुटि उत्पन्न करते हैं; अपवादों को सौम्य तरीके से संभालें

प्रोग्रामिंग भाषाओं में URL एन्कोडिंग/डिकोडिंग कैसे करें

JavaScript
एन्कोड
// Component (recommended for query values)
const encoded = encodeURIComponent(text);
// If you need '+' for spaces in query strings
const encodedPlus = encoded.replace(/%20/g, '+');
// Full URI
const encodedUri = encodeURI(url);
डिकोड
// Treat '+' as space if needed
const input = plusAsSpace ? s.replace(/\+/g, ' ') : s;
// Component
const dec1 = decodeURIComponent(input);
// Fallback to decodeURI when input is a full URL
const dec2 = decodeURI(input);
PHP
एन्कोड
// Component (RFC 3986)
$encoded = rawurlencode($text);
// '+' for spaces (application/x-www-form-urlencoded)
$encodedPlus = str_replace('%20', '+', $encoded);
// Full query usage
$query = http_build_query(['q' => '你好 世界', 'type' => 'text']);
डिकोड
// Component
$decoded = rawurldecode($s);
// If input uses '+' for spaces
$decodedPlus = urldecode($s);
Python
एन्कोड
from urllib.parse import quote, quote_plus

# Component (RFC 3986)
enc = quote(text, safe='')
# '+' for spaces (application/x-www-form-urlencoded)
enc_plus = quote_plus(text)
डिकोड
from urllib.parse import unquote, unquote_plus

# Component
dec = unquote(s)
# Input with '+' for spaces
dec_plus = unquote_plus(s)
Go
एन्कोड
import (
    "net/url"
)

// Query component
enc := url.QueryEscape(text) // spaces => +
// Path segment
// go1.8+
// url.PathEscape(text)
डिकोड
import (
    "net/url"
)

// Query component
dec, _ := url.QueryUnescape(s)
// Path segment
// url.PathUnescape(s)
Rust
एन्कोड
// Cargo.toml: urlencoding = "^2"
use urlencoding::{encode, encode_binary};

let enc = encode(text);              // component; spaces => %20
let enc_plus = enc.replace("%20", "+"); // if you need '+' for spaces
डिकोड
use urlencoding::decode;

// decode treats '+' as space
let dec = decode(s)?; // Result, _>
Java
एन्कोड
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

// Query param / form style (spaces => '+')
String enc = URLEncoder.encode(text, StandardCharsets.UTF_8);
// For RFC3986-like component encoding, replace '+' with %20 if needed
String encSpace = enc.replace("+", "%20");
डिकोड
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;

// URLDecoder treats '+' as space
String dec = URLDecoder.decode(s, StandardCharsets.UTF_8);