کوئری سٹرنگ ویلیوز بنانا
کوئی بھی صارف ان پٹ جو آپ ?q=... میں ڈالتے ہیں اسے Component موڈ سے انکوڈ ہونا چاہیے۔ URI موڈ = اور & کو raw چھوڑ دے گا، جس سے آپ کا 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 انکوڈ کر رہے ہوں۔
یہاں ٹیکسٹ فائل ڈراپ کریں، یا براؤز کرنے کے لیے کلک کریں
کوئی بھی UTF-8 ٹیکسٹ فائل:.txt,.csv,.json,.url,.log
تیز، درست، صرف براؤزر میں — ڈویلپرز، کاپی رائٹرز، اور کسی بھی URL کو ڈیبگ کرنے والے کے لیے بنایا گیا۔
اس بنیاد پر کہ آپ کیا انکوڈ کر رہے ہیں — کوئری سٹرنگ ویلیوز، مکمل URL، یا HTML form payload — Component، Full URI، یا Form موڈ منتخب کریں۔
ہر انکوڈ اور ڈیکوڈ آپ کے براؤزر میں نیٹیو JavaScript استعمال کرتے ہوئے ہوتا ہے۔ آپ کا متن اور URLs کبھی آپ کا ڈیوائس نہیں چھوڑتے۔
ہر کی سٹروک پر آؤٹ پٹ اپڈیٹ ہوتا ہے — کوئی "Encode" بٹن نہیں، کسی سرور سے کوئی راؤنڈ ٹرپ نہیں۔
ایموجی، CJK کریکٹرز، اعراب والے لاطینی، اور سیریلک encodeURIComponent کے ذریعے درست طور پر راؤنڈ ٹرپ کرتے ہیں۔
ڈیکوڈ کرتے وقت، اختیاری طور پر '+' کو سپیس کے طور پر سمجھیں — یہی روایت HTML forms application/x-www-form-urlencoded کے تحت استعمال کرتے ہیں۔
ایک ہی قدم میں انکوڈ یا ڈیکوڈ کرنے کے لیے.txt،.csv، یا.json فائل ڈراپ کریں۔ آؤٹ پٹ صاف ستھری.txt کے طور پر ڈاؤن لوڈ ہوتا ہے۔
تین نیٹیو براؤزر APIs، تین موڈز، سب اسی صفحے میں چل رہے ہیں جو آپ پڑھ رہے ہیں۔
ہر کی سٹروک پر، ان پٹ سٹرنگ ایک چھوٹے JavaScript فنکشن کو پاس کی جاتی ہے۔ کوئی debounce نہیں، کوئی API کال نہیں، کوئی fetch نہیں — فنکشن آپ کے براؤزر ٹیب میں synchronously چلتا ہے۔
Component encodeURIComponent کال کرتا ہے — ہر اس چیز کو escape کرتا ہے جو A-Z a-z 0-9 - _. ~ نہیں ہے۔ URI encodeURI کال کرتا ہے — :/?#=& کو محفوظ رکھتا ہے تاکہ مکمل URL درست رہے۔ Form encodeURIComponent استعمال کرتا ہے اور application/x-www-form-urlencoded کے مطابق سپیس کو + سے بدل دیتا ہے۔
encodeURIComponent اور encodeURI دونوں ہر غیر محفوظ بائٹ کو percent-encode کرنے سے پہلے سٹرنگ کو اندرونی طور پر UTF-8 بائٹس میں تبدیل کرتے ہیں۔ اس کا مطلب ہے چینی 中 کے لیے %E4%B8%AD — بالکل وہی جو RFC 3986 کا تقاضا ہے۔
نتیجہ صرف پڑھنے کے لیے آؤٹ پٹ کی ویلیو کے طور پر سیٹ کیا جاتا ہے۔ Copy پر کلک کر کے اسے navigator.clipboard.writeText کے ذریعے اپنے کلپ بورڈ پر رکھیں، یا Download کر کے Blob URL کے ذریعے .txt کے طور پر محفوظ کریں — دونوں آپ کے براؤزر میں رہتے ہیں۔
حقیقی صورتحال جہاں صحیح encoding موڈ بگز کو روکتا ہے۔
کوئی بھی صارف ان پٹ جو آپ ?q=... میں ڈالتے ہیں اسے Component موڈ سے انکوڈ ہونا چاہیے۔ URI موڈ = اور & کو raw چھوڑ دے گا، جس سے آپ کا URL ٹوٹ جائے گا جب ویلیو میں یہ موجود ہوں۔
کچھ چیٹ ایپس اور PDFs لنکس کو خراب کر دیتے ہیں جب ان میں raw سپیسز یا غیر-ASCII کریکٹرز ہوں۔ URL کو URI موڈ سے گزاریں تاکہ یہ ہر جگہ کاپی پیسٹ کے قابل ہو۔
جب آپ کا API درخواست مسترد کرے، URL کو Decode موڈ میں پیسٹ کریں تاکہ دیکھ سکیں سرور نے اصل میں کیا دیکھا۔ ڈبل-انکوڈ شدہ ویلیوز (جہاں % خود %25 کے طور پر انکوڈ ہوا تھا) فوراً نظر آ جاتی ہیں۔
application/x-www-form-urlencoded میں POST bodies کو ڈیبگ کرتے وقت، "+ as space" ٹوگل آن کر کے ڈیکوڈ کریں۔ یہی روایت براؤزرز استعمال کرتے ہیں، اور اسے بھولنا "میرا یوزرنیم پلس کے نشانات کے ساتھ کیوں ظاہر ہو رہا ہے" بگز کی #1 وجہ ہے۔
جو URLs آپ انکوڈ کرتے ہیں ان میں اکثر اصلی کسٹمر ای میلز، IDs، یا سیشن ٹوکنز ہوتے ہیں — بالکل وہی قسم کا ڈیٹا جو آپ کسی اجنبی کے سرور ٹول میں پیسٹ نہیں کرنا چاہتے۔ iKit URL انکوڈر آپ کے براؤزر میں پہلے سے لوڈ JavaScript کے طور پر چلتا ہے، اس لیے ان پٹ کبھی آپ کا ٹیب نہیں چھوڑتا۔
fetch، XHR، یا beacon نہیں۔
iKit بلاگ سے تفصیلی ٹیوٹوریلز اور ٹولز کا موازنہ۔
The 30-year-old form-encoding quirk explained — when + means space, when it means literal +, and how to fix the email-with-plus bug.
When to reach for Base64 versus URL percent-encoding, and what each encoding actually solves.
Pretty-print, validate, and structurally diff messy JSON in any browser.
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 سیکوینس — ایک % جس کے بعد دو ہیکس ڈیجٹس نہیں آئے۔ درست بائٹ پوزیشن کے لیے ایرر میسج چیک کریں۔
Component موڈ کے لیے ہاں — ہم براہ راست encodeURIComponent کال کرتے ہیں۔ Form موڈ RFC 3986 + WHATWG کے مطابق معیاری form-encoding ٹویکس شامل کرتا ہے (! ' * بن جاتے ہیں %21 %27 %28 %29 %2A)۔ URI موڈ encodeURI کال کرتا ہے، جو زیادہ تر زبانوں کا 'percent-encode a URL' سے مطلب ہے۔
نہیں۔ پورا ٹول اس صفحے کے اندر JavaScript ہے — انکوڈنگ اور ڈیکوڈنگ آپ کے براؤزر میں ہوتی ہے۔ آپ DevTools → Network کھول کر اور دیکھ کر تصدیق کر سکتے ہیں: انکوڈ یا ڈیکوڈ آپریشنز کے دوران کوئی درخواستیں نہیں بھیجی جاتیں۔