§

Options

طریقہ
Hex گروپنگ
0x سابقہ
کیس
متن انکوڈنگ
§

ان پٹ

§

آؤٹ پٹ

HBL (Habib Bank Limited) کے آئی ٹی آڈیٹر ISO 8583 ادائیگی پیغامات کی جانچ کرتے وقت روزانہ hex ↔ ASCII تبدیلی پر انحصار کرتے ہیں — ہر فیلڈ بٹ میپ hex میں نظر آتا ہے جبکہ merchant کوڈ اور terminal ID اندر ASCII متن کے طور پر چھپے ہوتے ہیں۔ OGDCL کے SCADA انجینئر Modbus serial فریموں کا ست عشری معائنہ اسی طرح کرتے ہیں، اور Allied Engineering کے avionics ماہرین PIA کے بیڑے کی دیکھ بھال کے لیے ARINC-429 ڈیٹا ورڈز کو hex میں ڈی کوڈ کرتے ہیں۔ یہ ٹول وہی ترجمہ براؤزر ٹیب سے باہر جائے بغیر مہیا کرتا ہے۔

hex انکوڈنگ کیسے کام کرتی ہے

صفحے پر موجود ہر کردار ایک یا زیادہ بائٹس کے طور پر محفوظ ہوتا ہے۔ hex انکوڈنگ ان بائٹس کو بیس 16 میں دوبارہ لکھتی ہے، فی بائٹ دو حروف، تاکہ بائٹ سٹریم خصوصی ٹولز کے بغیر پڑھنے کے قابل ہو۔

  1. متن کو بائٹس میں انکوڈ کریں. UTF-8 موڈ ان پٹ کو new TextEncoder().encode(text) سے گزارتا ہے جو بائٹ اقدار کا Uint8Array واپس کرتا ہے۔ Latin-1 موڈ charCodeAt(0) & 0xFF کے ذریعے ہر کوڈ یونٹ کے نچلے آٹھ بٹس لیتا ہے جو قدیم ISO-8859-1 کوڈیکس انجام دیتے ہیں۔
  2. ہر بائٹ کو دو hex ہندسوں کے طور پر پیش کریں. ہر بائٹ byte.toString(16).padStart(2, "0") کے ذریعے دو hex ہندسوں میں تبدیل ہوتی ہے۔ کیس ٹوگل آؤٹ پٹ حروف پر بڑے (A-F) یا چھوٹے (a-f) کا انتخاب کرتا ہے۔
  3. گروپنگ اور سابقہ لگائیں. گروپنگ بائٹس کے درمیان ایک علیحدہ کنندہ لگاتی ہے: اکیلی اسپیس، ڈیش، یا ہر چار بائٹس پر اسپیس۔ 0x سابقہ پوری سٹرنگ پر ایک بار (None گروپنگ) یا فی بائٹ (Space گروپنگ) لگایا جا سکتا ہے۔
  4. الٹا ڈی کوڈ کریں. Hex ← متن موڈ ان پٹ سے ہر اسپیس، ڈیش، اور 0x سابقہ ہٹاتا ہے، باقی حروف کو /^[0-9a-fA-F]+$/ سے تصدیق کرتا ہے، طاق-لمبائی سٹرنگز مسترد کرتا ہے، اور یکے بعد دیگرے بائٹ جوڑوں سے Uint8Array دوبارہ بناتا ہے۔ UTF-8 موڈ اس صف کو new TextDecoder("utf-8", { fatal: true }) سے ڈی کوڈ کرتا ہے؛ Latin-1 موڈ ہر بائٹ کو String.fromCharCode(b) سے نقشہ بند کرتا ہے۔
  5. تیز تکرار کے لیے لائیو موڈ. لائیو موڈ بطور ڈیفالٹ چالو ہے۔ ہر کی اسٹروک 150 ملی سیکنڈ کا ڈی باؤنسڈ دوبارہ تبدیل کرنے کا عمل شروع کرتا ہے تاکہ آپ Convert بٹن دبائے بغیر پیسٹ، ترمیم کر سکیں اور دوسرا پینل اپ ڈیٹ ہوتے دیکھ سکیں۔

hex کنورٹر کیوں استعمال کریں

  • بائنری پروٹوکول ڈیبگنگ. Modbus، DNP3، اور CoAP جیسے وائر فارمیٹس اپنے ہیڈرز مخصوص بائٹ آفسیٹس میں پیک کرتے ہیں۔ hex میں کیپچر کیا گیا فریم پڑھنے سے ہر فیلڈ نظر آتی ہے، اور انہی بائٹس کو ASCII میں پلٹانے سے بائنری فریمنگ کے ساتھ ساتھ پوشیدہ plain-text پے لوڈ سامنے آتا ہے۔
  • embedded فرم ویئر کے ساتھ کام. JTAG اور SWD پروب میموری مواد hex کے طور پر رپورٹ کرتے ہیں۔ میموری کے ایک حصے کو ASCII میں ترجمہ کرنے سے embedded سٹرنگز (فائل پاتھ، ایرر پیغامات، وینڈر دستخط) نظر آتے ہیں۔
  • پیکٹ کیپچر پڑھنا. Wireshark اور tcpdump دونوں ایک بائٹ پین کے ساتھ آتے ہیں جو ہر پیکٹ کو بائیں طرف hex اور دائیں طرف ASCII کے طور پر پرنٹ کرتا ہے۔ یہاں کوئی ٹکڑا تبدیل کرنے سے آپ بغیر کیپچر ٹول میں دوبارہ درآمد کیے bug رپورٹ سے hex blob کاپی کر کے پڑھ سکتے ہیں۔
  • بائٹ سطح کے فرق. دو بائنری فائلوں کا موازنہ اکثر یہ جاننے تک آتا ہے کہ کون سی بائٹس بدلیں۔ یکساں گروپنگ کے ساتھ دونوں طرف کو hex میں تبدیل کرنے سے ٹیکسٹ ایڈیٹر میں فرق لائن اپ ہو جاتا ہے۔

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

Hex ↔ ASCII تبدیلی ریورس انجینئرنگ، سیکیورٹی، اور embedded کام میں اس وقت ظاہر ہوتی ہے جب بائٹ سٹریم محض ایک ٹیکسٹ پے لوڈ سے زیادہ ہو۔

  • ریورس انجینئرنگ: strings-مزاحم بائنری سے hex ڈمپ لیں، قابل پرنٹ ASCII کے طور پر ڈی کوڈ ہونے والے رنز نکالیں، اور ان سٹرنگز کو disassembly میں اپنی جگہ تلاش کرنے کے لیے استعمال کریں۔
  • نیٹ ورک فورنزکس: Wireshark سے واحد پیکٹ پے لوڈ hex کے طور پر کاپی کریں، یہاں پیسٹ کریں، اور پوری کیپچر ایکسپورٹ کیے بغیر ایپلیکیشن-لیئر متن پڑھیں۔
  • کرپٹو مواد ہینڈلنگ: ایک کلید، IV، یا HMAC ٹیگ اکثر hex سٹرنگ کے طور پر آتا ہے۔ بائٹس میں واپس ڈی کوڈ کرنے سے تصدیق ہوتی ہے کہ لمبائی الگورتھم سے میل کھاتی ہے۔

ایک عملی مثال

Text → Hex، UTF-8، lowercase، Space-every-byte گروپنگ، prefix بند منتخب کریں۔ Hi ٹائپ کریں: آؤٹ پٹ 48 69 دکھائے گا۔ prefix چالو اور گروپنگ None پر سوئچ کریں اور وہی ان پٹ 0x4869 کے طور پر ظاہر ہوگا۔ emoji 😀 ان پٹ کے طور پر پیسٹ کریں اور UTF-8 موڈ f0 9f 98 80 دکھائے گا — ایک کوڈ پوائنٹ کے لیے چار بائٹس۔ Hex → Text پر سوئچ کریں اور 0x48-65-6C 6C 6F پیسٹ کریں: پارسر سابقہ، ڈیش، اور اسپیس ہٹا کر Hello دوبارہ بنائے گا۔

FAQ

hex انکوڈنگ کیا ہے؟

hex انکوڈنگ (یا hexadecimal انکوڈنگ) بائٹ سٹریم کو بیس 16 میں لکھتی ہے، فی بائٹ دو ASCII حروف۔ ہر hex ہندسہ چار بٹس کا احاطہ کرتا ہے، اس لیے دو ہندسے ایک آٹھ بٹ بائٹ کا احاطہ کرتے ہیں۔ حروف تہجی 0-9 پھر A-F (یا a-f) تک چلتی ہے؛ کیس محض پیشکش کا انتخاب ہے اور ڈی کوڈرز دونوں قبول کرتے ہیں۔

hex میں میرا emoji 4 بائٹس کیوں بنتا ہے؟

UTF-8 ایک متغیر-لمبائی انکوڈنگ ہے۔ ASCII حروف (U+0000 سے U+007F) ایک بائٹ لیتے ہیں، Latin-1 سپلیمنٹس دو، زیادہ تر دیگر BMP کوڈ پوائنٹس تین، اور U+FFFF سے اوپر کے حروف — زیادہ تر emoji سمیت — چار لیتے ہیں۔ مسکراتا چہرہ 😀 U+1F600 ہے اور F0 9F 98 80 میں انکوڈ ہوتا ہے۔

کیا یہ Latin-1 / ISO-8859-1 کو سپورٹ کرتا ہے؟

ہاں۔ Text encoding آپشن کو Latin-1 (ISO-8859-1) پر سوئچ کریں۔ انکوڈنگ ہر JavaScript کوڈ یونٹ کے نچلے آٹھ بٹس لیتی ہے (charCodeAt(0) & 0xFF) جو قدیم سنگل-بائٹ میپنگ سے میل کھاتی ہے۔ ڈی کوڈنگ ہر بائٹ کے لیے String.fromCharCode(byte) استعمال کرتی ہے۔

کیا تبدیلی میرے براؤزر میں ہوتی ہے؟

ہاں۔ کنورٹر TextEncoder، TextDecoder، اور ایک چھوٹا پارسر واحد سٹیٹک صفحے کے طور پر چلاتا ہے۔ کوئی اپلوڈ نہیں، کوئی API کال نہیں، اور آپ جو پیسٹ کرتے ہیں اس پر کوئی تجزیاتی نہیں — صرف سائٹ بھر میں مشترکہ معیاری صفحہ-لوڈ میٹرکس۔

Hex ↔ ASCII تبدیلی ایک چھوٹا کام ہے جو بائنری پروٹوکول یا embedded فرم ویئر پڑھنے والا کوئی بھی شخص دن میں کئی بار کرتا ہے۔ اسے براؤزر ٹیب میں کرنا، وہی native انکوڈرز استعمال کرتے ہوئے جو Node اور V8 پہلے سے فراہم کرتے ہیں، کام تیز اور بائٹ سٹریم آپ کی مشین پر رکھتا ہے۔