URL انکوڈنگ اور ڈی کوڈنگ
URL اسٹرنگز کو انکوڈ اور ڈیکوڈ کریں تاکہ خصوصی حروف اور غیر ASCII متن کو محفوظ طریقے سے ہینڈل کریں، سوال کے پیرامیٹرز اور راہ کی ترسیل کے لیے مثالی۔
کیسے استعمال کریں
URL انکوڈنگ خصوصی یا غیر ASCII حروف کو %XX فارمیٹ میں تبدیل کرتی ہے تاکہ URL میں محفوظ ترسیل ہو سکے۔
متن کو URL کے لیے محفوظ فارمیٹ میں تبدیل کرنے کے لیے 'انکوڈ' استعمال کریں (مثال کے طور پر، سوال کے پیرامیٹرز کے لیے)۔
%XX سیکوینسز کو ان کے اصل حروف میں بحال کرنے کے لیے 'ڈیکوڈ' استعمال کریں۔
عام منظرنامے: سوال کے پیرامیٹرز کو ہینڈل کرنا، فارم ڈیٹا کی ترسیل، API کالز وغیرہ۔
خصوصیات
- دو انکوڈنگ موڈز: encodeURIComponent اور encodeURI
- لچکدار خلاء ہینڈلنگ: + کے طور پر یا %20 کے طور پر انکوڈ کریں
- ریئل ٹائم تبدیلی ان پٹ/آؤٹ پٹ لمبائی کے اعدادوشمار کے ساتھ
- کاپی/کلئیر بٹنز اور دو طرفہ پینل پر بھیجنے کی فعالیت
- DaisyUI ملٹی تھیم کے ساتھ مکمل بین الاقوامی معاونت
URL انکوڈنگ کیا ہے؟
URL انکوڈنگ حروف کو %XX پرسنٹ انکوڈ شدہ ترتیب میں تبدیل کرتی ہے تاکہ URLs میں محفوظ طریقے سے منتقلی ہو سکے۔
encodeURIComponent انفرادی اجزاء کے لیے موزوں ہے (مثال کے طور پر سوال پیرامیٹر کی قدر) اور زیادہ تر غیر حروف عددی حروف کو انکوڈ کرتا ہے۔
encodeURI پوری URI اسٹرنگز کے لیے ڈیزائن کیا گیا ہے اور ساختاتی معنی رکھنے والے محفوظ حروف کو برقرار رکھتا ہے، جیسے کہ ؟, &, =, اور /۔
عام استعمال کے معاملات
- سوال پیرامیٹرز کی تعمیر (مثال کے طور پر تلاش کے کلیدی الفاظ، فلٹر کے حالات)
- فارم کے اعداد و شمار کو GET/POST کے ذریعے انکوڈ اور منتقل کرنا
- API درخواست پیرامیٹرز کو انکوڈ کرنا
- صارف کے ان پٹ کو URL پاتھ سیگمنٹس میں محفوظ طریقے سے داخل کرنا
عمومی سوالات اور خاطر خطرات
- encodeURI بمقابلہ 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);