مواد پر جائیں

URL ڈیکوڈ کریں

%E2%9C%93 کو واپس ✓ میں بدلیں۔ دوہری انکوڈڈ اسٹرنگز، فارم انکوڈنگ اور آدھا خراب ان پٹ — سب رد کرنے کے بجائے سنبھالے جاتے ہیں۔ کچھ بھی محفوظ نہیں کیا جاتا۔

  • کبھی محفوظ نہیں کی جاتی
  • نہ قطار، نہ انتظار
  • نہ سائن اپ، نہ واٹر مارک
ڈیکوڈ شدہ

ڈیکوڈ شدہ یہاں نظر آئے گا۔

یہ کیسے کام کرتا ہے

1

انکوڈڈ ٹیکسٹ پیسٹ کریں

پورا URL، کوئری اسٹرنگ، یا صرف ایک ویلیو۔

2

ضرورت ہو تو طریقہ چنیں

معیاری ڈیکوڈنگ، یا فارم ڈیکوڈنگ جس میں + کا مطلب اسپیس ہے۔ اگر آپ کو یقین نہیں تو صفحہ دکھا دیتا ہے کہ دونوں میں کب فرق ہے۔

3

نتیجہ کاپی کریں

اگر ٹیکسٹ دو بار انکوڈ ہوا تھا تو دوبارہ ڈیکوڈ کریں — ایسا اکثر ہوتا ہے، اور ایک بار دیکھ لیں تو پہچاننا آسان ہے۔

وہ ابہام جو کوئی آپ کے لیے دور نہیں کر سکتا

ڈیکوڈنگ میکانکی طور پر سادہ ہے — ہر وہ % تلاش کریں جس کے بعد دو hex ہندسے ہوں، اسے واپس ایک بائٹ میں بدلیں، پھر بائٹس کو UTF-8 کے طور پر پڑھیں — اور اس میں صرف ایک حقیقی ابہام ہے۔ پلس کے نشان کا مطلب اسپیس بھی ہو سکتا ہے اور پلس بھی۔ بھیجے گئے فارم میں اس کا مطلب اسپیس ہے، ایک ایسے رواج کی وجہ سے جو ویب کی اپنی URL اسپیسیفکیشن سے بھی پرانا ہے۔ پاتھ کے کسی حصے میں یہ ایک عام حرف ہے۔ ٹیکسٹ میں خود کچھ نہیں بتاتا کہ کون سی صورت لاگو ہے، اس لیے صفحہ ایک کو چن کر خاموشی سے غلط ہونے کے بجائے آپ کو دونوں مطلب دکھاتا ہے — اور یہ سب سے زیادہ وہاں اہم ہے جہاں نقصان سب سے زیادہ ہوتا ہے: ای میل ایڈریس یا base64 ویلیو، جہاں پلس اصل ڈیٹا کا حصہ ہے۔

غیر ASCII ٹیکسٹ ہر حرف کے لیے کئی پرسنٹ سیکوئنسز کی صورت میں آتا ہے، کیونکہ انکوڈنگ حروف پر نہیں بلکہ UTF-8 بائٹس پر کام کرتی ہے: اعراب والا حرف دو، زیادہ تر علامات تین، اور ایموجی چار۔ اگر کوئی ایسی سیکوئنس ڈیکوڈ کریں جو درست UTF-8 نہیں تو ریپلیسمنٹ کیریکٹرز ملتے ہیں — جو عموماً اس بات کی علامت ہے کہ ٹیکسٹ کسی اور کیریکٹر سیٹ سے انکوڈ ہوا تھا، یا کسی حرف کے بیچ میں سے کٹ گیا ہے۔

دو بار ڈیکوڈ کرنا صرف غلطی نہیں، سیکیورٹی بگ ہے۔ اگر کوئی ویلیو ڈیکوڈ ہو، جانچی جائے، اور پھر دوبارہ ڈیکوڈ ہو، تو حملہ آور جانچ سے حروف چھپا سکتا ہے: %252e%252e%252f اس فلٹر سے گزر جاتا ہے جو “../” ڈھونڈ رہا ہو، کیونکہ ایک بار کے بعد یہ اب بھی %2e%2e%2f ہے، اور دوسری بار کے بعد یہ وہی ٹریورسل بن جاتا ہے جسے روکنے کے لیے فلٹر لگایا گیا تھا۔ بالکل ایک بار ڈیکوڈ کریں، پھر جانچیں، اور کبھی الٹی ترتیب میں نہیں۔

جو ٹیکسٹ کبھی انکوڈ ہوا ہی نہیں وہ بگڑنے کے بجائے جوں کا توں واپس آتا ہے، جو اس وقت کام کا رویہ ہے جب آپ کو یقین نہ ہو کہ کسی اسٹرنگ کو ڈیکوڈ کرنے کی ضرورت ہے بھی یا نہیں۔ ایسا پرسنٹ کا نشان جس کے بعد دو hex ہندسے نہ ہوں، خرابی سمجھنے کے بجائے ویسے ہی چھوڑ دیا جاتا ہے — یہ ایک عام پرسنٹ ہے، جو اس ٹیکسٹ میں عام ہے جو انکوڈ ہونے کے بجائے پیسٹ کیا گیا ہو۔

جب آپ کو کچھ اور چاہیے

کوڈ میں ڈیکوڈر کو انکوڈر سے میل کھانا چاہیے۔ JavaScript میں decodeURIComponent ہے؛ Python ٹھیک اسی پلس والے سوال پر unquote اور unquote_plus کو الگ رکھتا ہے؛ PHP میں اسی وجہ سے rawurldecode اور urldecode ہیں۔ اس سے بھی بہتر یہ ہے کہ یہ کام URL ٹائپ یا کوئری اسٹرنگ پارسر کو کرنے دیں — زیادہ تر فریم ورکس پیرامیٹرز آپ کے لیے ڈیکوڈ کر دیتے ہیں، اور اس کے بعد دوبارہ ڈیکوڈ کرنا ہی وہ طریقہ ہے جس سے اوپر والا دوہری ڈیکوڈنگ کا بگ لکھا جاتا ہے۔

کسی ویلیو کو ڈیکوڈ کرنے کے بجائے لمبے URL کا جائزہ لینا ہو تو ڈیکوڈر سے بہتر پارسر ہے: python -c "import urllib.parse,sys; print(urllib.parse.urlparse(sys.argv[1]))" ایڈریس کو اس کے حصوں میں تقسیم کر دیتا ہے تاکہ کچھ بھی ڈیکوڈ کرنے سے پہلے آپ دیکھ سکیں کہ کون سا حصہ کیا ہے — اور جب کوئی لنک ٹھیک کام نہ کر رہا ہو تو اصل سوال عموماً یہی ہوتا ہے۔

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

ڈیکوڈ کرنے کے بعد بھی میرے ٹیکسٹ میں %25 موجود ہے

تو یہ دو بار انکوڈ ہوا تھا، جو بہت ہی عام ہے — ایسا تب ہوتا ہے جب پہلے سے انکوڈڈ ویلیو کسی ری ڈائریکٹ یا لاگنگ لیئر سے گزرتے ہوئے دوبارہ انکوڈ ہو جائے۔ %25 خود % حرف کی انکوڈنگ ہے، اس لیے پہلی ڈیکوڈنگ %2520 کو %20 بناتی ہے، اور دوسری اسے اسپیس میں بدل دیتی ہے۔ بس دوبارہ ڈیکوڈ کریں۔ جب صفحہ یہ پیٹرن پہچانتا ہے تو آپ کو بتا دیتا ہے۔

کیا “+” کو اسپیس بننا چاہیے؟

یہ اس پر منحصر ہے کہ اسٹرنگ کہاں سے آئی، اسی لیے یہ اندازہ نہیں بلکہ آپ کا انتخاب ہے۔ application/x-www-form-urlencoded باڈی میں — یعنی بھیجا گیا HTML فارم — + کا مطلب اسپیس ہے۔ پاتھ کے کسی حصے میں، یا ایسے ڈیٹا میں جو بس URL کے ذریعے سفر کر رہا تھا، + ایک اصل پلس حرف ہے اور اسے اسپیس بنانے سے ویلیو خراب ہو جاتی ہے۔ Base64 اسٹرنگز وہ صورت ہیں جہاں نقصان ہوتا ہے: ان میں اصل + حروف ہوتے ہیں، اور فارم ڈیکوڈنگ انہیں برباد کر دیتی ہے۔

خراب اسٹرنگ کے ساتھ کیا ہوتا ہے؟

جتنا ڈیکوڈ ہو سکے ڈیکوڈ کرتا ہے اور باقی کو ویسے ہی چھوڑ دیتا ہے، سب کچھ رد کرنے کے بجائے۔ ایک بھٹکا ہوا % جو کسی درست ایسکیپ کا حصہ نہ ہو — جو عام ہے جب ٹیکسٹ پہلے ہی جزوی طور پر ڈیکوڈ ہو چکا ہو یا کٹ گیا ہو — براؤزر کے اپنے ڈیکوڈر سے خرابی دلواتا ہے اور کچھ بھی واپس نہیں آتا۔ یہاں ہر درست ایسکیپ ڈیکوڈ ہوتا ہے اور بھٹکے ہوئے حروف جوں کے توں رہتے ہیں، جو خراب لاگ لائن پڑھنے کی کوشش میں کہیں زیادہ مفید ہے۔

کیا میرا ٹیکسٹ کہیں محفوظ کیا جاتا ہے؟

نہیں۔ کچھ بھی محفوظ نہیں کیا جاتا اور کوئی ریکوئسٹ نہیں بھیجی جاتی۔ صفحہ لوڈ ہونے کے بعد آپ انٹرنیٹ بند کر سکتے ہیں اور یہ کام کرتا رہتا ہے۔

کیا میں پورا URL ایک ساتھ ڈیکوڈ کر سکتا ہوں؟

جی ہاں۔ پورا پیسٹ کریں — ڈھانچہ پڑھنے کے قابل رہتا ہے اور صرف انکوڈڈ حصے واپس ٹیکسٹ میں بدلتے ہیں، اس لیے کئی انکوڈڈ پیرامیٹرز والا لمبا URL ایسی چیز بن جاتا ہے جسے آپ واقعی پڑھ سکیں۔

جاننا مفید ہے: پلس کا نشان مبہم ہے: کوئری اسٹرنگ میں اس کا مطلب اسپیس ہے، اور پاتھ میں یہ واقعی پلس ہے۔ صفحہ اندازہ لگانے کے بجائے دونوں طرح ڈیکوڈ کرتا ہے اور دکھاتا ہے کہ کون سا کیا ہے۔ جو ٹیکسٹ کبھی پرسنٹ انکوڈ ہوا ہی نہیں، وہ بگڑنے کے بجائے جوں کا توں واپس آتا ہے۔

یہ ٹول اپنی ویب سائٹ پر لگائیں

کسی بھی بلاگ، کلاس پیج یا ہیلپ آرٹیکل کے لیے مفت۔ ایک اسنیپٹ پیسٹ کریں اور آپ کے وزیٹرز اسے سیدھا آپ کے صفحے پر استعمال کر سکیں گے۔