URL Encoder

URL انکوڈر / ڈیکوڈر

کسی بھی متن کو percent-encoded URL-محفوظ سٹرنگ میں انکوڈ کریں، یا انکوڈ شدہ URL کو واپس سادہ متن میں ڈیکوڈ کریں۔ لائیو پیش منظر، UTF-8 محفوظ، اور مکمل طور پر آپ کے براؤزر میں چلتا ہے۔

Component (encodeURIComponent) ہر اس چیز کو escape کرتا ہے جو unreserved کریکٹر نہیں ہے — کوئری سٹرنگ ویلیوز، پاتھ سیگمنٹس، یا کسی بھی ایک فیلڈ کے لیے سب سے محفوظ۔ URI (encodeURI) URL سٹرکچر کے کریکٹرز (:/?#=&) کو محفوظ رکھتا ہے — اسے مکمل URL پر استعمال کریں۔ Form (application/x-www-form-urlencoded) Component + سپیسز '+' بن جاتی ہیں — جو HTML forms استعمال کرتے ہیں۔

RFC 3986 "unreserved" کریکٹرز کا ایک سیٹ متعین کرتا ہے جنہیں انکوڈنگ کی ضرورت نہیں: A-Z a-z 0-9 - _. ~۔ باقی سب کچھ percent-encode ہوتا ہے۔ encodeURIComponent اضافی طور پر :/?#&= کو انکوڈ کرتا ہے جنہیں encodeURI چھوڑ دیتا ہے۔ یہ فرق اس وقت اہم ہوتا ہے جب آپ کوئری ویلیو بمقابلہ مکمل URL انکوڈ کر رہے ہوں۔

سادہ متن

0 حروف

انکوڈ شدہ آؤٹ پٹ

0 حروف

iKit URL انکوڈر کیوں؟

تیز، درست، صرف براؤزر میں — ڈویلپرز، کاپی رائٹرز، اور کسی بھی URL کو ڈیبگ کرنے والے کے لیے بنایا گیا۔

تین انکوڈنگ موڈز

اس بنیاد پر کہ آپ کیا انکوڈ کر رہے ہیں — کوئری سٹرنگ ویلیوز، مکمل URL، یا HTML form payload — Component، Full URI، یا Form موڈ منتخب کریں۔

ڈیزائن کے ذریعے پرائیویسی

ہر انکوڈ اور ڈیکوڈ آپ کے براؤزر میں نیٹیو JavaScript استعمال کرتے ہوئے ہوتا ہے۔ آپ کا متن اور URLs کبھی آپ کا ڈیوائس نہیں چھوڑتے۔

لائیو پیش منظر

ہر کی سٹروک پر آؤٹ پٹ اپڈیٹ ہوتا ہے — کوئی "Encode" بٹن نہیں، کسی سرور سے کوئی راؤنڈ ٹرپ نہیں۔

UTF-8 محفوظ

ایموجی، CJK کریکٹرز، اعراب والے لاطینی، اور سیریلک encodeURIComponent کے ذریعے درست طور پر راؤنڈ ٹرپ کرتے ہیں۔

Form-style + ہینڈلنگ

ڈیکوڈ کرتے وقت، اختیاری طور پر '+' کو سپیس کے طور پر سمجھیں — یہی روایت HTML forms application/x-www-form-urlencoded کے تحت استعمال کرتے ہیں۔

بلک فائل پراسیسنگ

ایک ہی قدم میں انکوڈ یا ڈیکوڈ کرنے کے لیے.txt،.csv، یا.json فائل ڈراپ کریں۔ آؤٹ پٹ صاف ستھری.txt کے طور پر ڈاؤن لوڈ ہوتا ہے۔

URL encoding اصل میں کیسے کام کرتی ہے

تین نیٹیو براؤزر APIs، تین موڈز، سب اسی صفحے میں چل رہے ہیں جو آپ پڑھ رہے ہیں۔

  1. 1

    آپ ایڈیٹر میں ٹائپ کرتے ہیں

    ہر کی سٹروک پر، ان پٹ سٹرنگ ایک چھوٹے JavaScript فنکشن کو پاس کی جاتی ہے۔ کوئی debounce نہیں، کوئی API کال نہیں، کوئی fetch نہیں — فنکشن آپ کے براؤزر ٹیب میں synchronously چلتا ہے۔

  2. 2

    موڈ منتخب کریں

    Component encodeURIComponent کال کرتا ہے — ہر اس چیز کو escape کرتا ہے جو A-Z a-z 0-9 - _. ~ نہیں ہے۔ URI encodeURI کال کرتا ہے — :/?#=& کو محفوظ رکھتا ہے تاکہ مکمل URL درست رہے۔ Form encodeURIComponent استعمال کرتا ہے اور application/x-www-form-urlencoded کے مطابق سپیس کو + سے بدل دیتا ہے۔

  3. 3

    UTF-8میں ہوتا ہے

    encodeURIComponent اور encodeURI دونوں ہر غیر محفوظ بائٹ کو percent-encode کرنے سے پہلے سٹرنگ کو اندرونی طور پر UTF-8 بائٹس میں تبدیل کرتے ہیں۔ اس کا مطلب ہے چینی 中 کے لیے %E4%B8%AD — بالکل وہی جو RFC 3986 کا تقاضا ہے۔

  4. 4

    آؤٹ پٹ لائیو ظاہر ہوتا ہے

    نتیجہ صرف پڑھنے کے لیے آؤٹ پٹ کی ویلیو کے طور پر سیٹ کیا جاتا ہے۔ Copy پر کلک کر کے اسے navigator.clipboard.writeText کے ذریعے اپنے کلپ بورڈ پر رکھیں، یا Download کر کے Blob URL کے ذریعے .txt کے طور پر محفوظ کریں — دونوں آپ کے براؤزر میں رہتے ہیں۔

عام استعمالات

حقیقی صورتحال جہاں صحیح encoding موڈ بگز کو روکتا ہے۔

کوئری سٹرنگ ویلیوز بنانا

کوئی بھی صارف ان پٹ جو آپ ?q=... میں ڈالتے ہیں اسے Component موڈ سے انکوڈ ہونا چاہیے۔ URI موڈ = اور & کو raw چھوڑ دے گا، جس سے آپ کا URL ٹوٹ جائے گا جب ویلیو میں یہ موجود ہوں۔

چیٹ پر طویل URL شیئر کرنا

کچھ چیٹ ایپس اور PDFs لنکس کو خراب کر دیتے ہیں جب ان میں raw سپیسز یا غیر-ASCII کریکٹرز ہوں۔ URL کو URI موڈ سے گزاریں تاکہ یہ ہر جگہ کاپی پیسٹ کے قابل ہو۔

بیک اینڈ ڈیبگ کرنا جو 400 لوٹاتا ہے

جب آپ کا API درخواست مسترد کرے، URL کو Decode موڈ میں پیسٹ کریں تاکہ دیکھ سکیں سرور نے اصل میں کیا دیکھا۔ ڈبل-انکوڈ شدہ ویلیوز (جہاں % خود %25 کے طور پر انکوڈ ہوا تھا) فوراً نظر آ جاتی ہیں۔

Form data راؤنڈ ٹرپ

application/x-www-form-urlencoded میں POST bodies کو ڈیبگ کرتے وقت، "+ as space" ٹوگل آن کر کے ڈیکوڈ کریں۔ یہی روایت براؤزرز استعمال کرتے ہیں، اور اسے بھولنا "میرا یوزرنیم پلس کے نشانات کے ساتھ کیوں ظاہر ہو رہا ہے" بگز کی #1 وجہ ہے۔

مقامی encoding کیوں اہم ہے

جو URLs آپ انکوڈ کرتے ہیں ان میں اکثر اصلی کسٹمر ای میلز، IDs، یا سیشن ٹوکنز ہوتے ہیں — بالکل وہی قسم کا ڈیٹا جو آپ کسی اجنبی کے سرور ٹول میں پیسٹ نہیں کرنا چاہتے۔ iKit URL انکوڈر آپ کے براؤزر میں پہلے سے لوڈ JavaScript کے طور پر چلتا ہے، اس لیے ان پٹ کبھی آپ کا ٹیب نہیں چھوڑتا۔

  • encode یا decode کے دوران کوئی fetch، XHR، یا beacon نہیں۔
  • صفحہ لوڈ ہونے کے بعد آف لائن کام کرتا ہے۔
  • کوئی لاگ نہیں، کوئی ریٹ لمٹ نہیں، کوئی سائن اپ نہیں، کوئی روزانہ کوٹہ نہیں۔

متعلقہ گائیڈز

iKit بلاگ سے تفصیلی ٹیوٹوریلز اور ٹولز کا موازنہ۔

اکثر پوچھے جانے والے سوالات

Component، URI، اور Form موڈز میں کیا فرق ہے؟

Component (encodeURIComponent) ہر اس چیز کو escape کرتا ہے جو unreserved کریکٹر نہیں ہے — کوئری سٹرنگ ویلیوز، پاتھ سیگمنٹس، یا کسی بھی ایک فیلڈ کے لیے سب سے محفوظ۔ URI (encodeURI) URL سٹرکچر کے کریکٹرز (:/?#=&) کو محفوظ رکھتا ہے — اسے مکمل URL پر استعمال کریں۔ Form (application/x-www-form-urlencoded) Component + سپیسز '+' بن جاتی ہیں — جو HTML forms استعمال کرتے ہیں۔

کچھ کریکٹرز انکوڈ کیوں نہیں ہوتے؟

RFC 3986 "unreserved" کریکٹرز کا ایک سیٹ متعین کرتا ہے جنہیں انکوڈنگ کی ضرورت نہیں: A-Z a-z 0-9 - _. ~۔ باقی سب کچھ percent-encode ہوتا ہے۔ encodeURIComponent اضافی طور پر :/?#&= کو انکوڈ کرتا ہے جنہیں encodeURI چھوڑ دیتا ہے۔ یہ فرق اس وقت اہم ہوتا ہے جب آپ کوئری ویلیو بمقابلہ مکمل URL انکوڈ کر رہے ہوں۔

میرا ڈیکوڈ شدہ متن غلط کیوں نظر آتا ہے؟

تین عام وجوہات: (1) اصل Form-encoded تھا اس لیے '+' کو سپیس سمجھنا چاہیے — وہ آپشن آن کریں۔ (2) ڈبل-انکوڈ شدہ — ان پٹ دو بار انکوڈ ہوا تھا؛ دوبارہ ڈیکوڈ کریں۔ (3) غلط percent سیکوینس — ایک % جس کے بعد دو ہیکس ڈیجٹس نہیں آئے۔ درست بائٹ پوزیشن کے لیے ایرر میسج چیک کریں۔

کیا انکوڈ شدہ URL JavaScript کے encodeURIComponent کے بالکل برابر ہے؟

Component موڈ کے لیے ہاں — ہم براہ راست encodeURIComponent کال کرتے ہیں۔ Form موڈ RFC 3986 + WHATWG کے مطابق معیاری form-encoding ٹویکس شامل کرتا ہے (! ' * بن جاتے ہیں %21 %27 %28 %29 %2A)۔ URI موڈ encodeURI کال کرتا ہے، جو زیادہ تر زبانوں کا 'percent-encode a URL' سے مطلب ہے۔

کیا میرے URLs کہیں اپ لوڈ ہوتے ہیں؟

نہیں۔ پورا ٹول اس صفحے کے اندر JavaScript ہے — انکوڈنگ اور ڈیکوڈنگ آپ کے براؤزر میں ہوتی ہے۔ آپ DevTools → Network کھول کر اور دیکھ کر تصدیق کر سکتے ہیں: انکوڈ یا ڈیکوڈ آپریشنز کے دوران کوئی درخواستیں نہیں بھیجی جاتیں۔