DevToys Web Pro iconDevToys Web Proوبلاگ
به ما امتیاز دهید:
افزونه مرورگر را امتحان کنید:

مبدل متن ↔ باینری

حالت
بیت‌ها
جداکننده

متن

  • دودویی

  • جزئیات فنی

    مبدل متن ↔ باینری چگونه کار می‌کند

    این ابزار چه کاری انجام می‌دهد

    ابزار متن ↔ باینری، متن را به نمایش باینری آن و برعکس تبدیل می‌کند. در حالت 8 بیت به‌ازای هر کاراکتر، ورودی به‌صورت بایت‌های UTF-8 کدگذاری می‌شود؛ در حالت 16 بیت به‌ازای هر کاراکتر، هر واحد کد (code unit) مستقیماً خروجی داده می‌شود. جداکننده‌ها (فاصله، کاما، خط جدید یا بدون جداکننده) خروجی را برای خواندن یا چسباندن آسان می‌کنند. دیکد کردن هر ترکیبی از این جداکننده‌ها و حتی رشته‌های بیتِ بدون جداکننده را می‌پذیرد، به شرطی که طول کل مضربی از اندازهٔ گروه‌بندی بیتِ تنظیم‌شده باشد.

    موارد استفادهٔ رایج برای توسعه‌دهندگان

    مدرسان و دانشجویان از این ابزار برای مشاهدهٔ اینکه ASCII و UTF-8 چگونه کاراکترها را به‌صورت بایت کدگذاری می‌کنند استفاده می‌کنند. توسعه‌دهندگان سامانه‌های نهفته فیکسچرهای تست برای payload پیام‌ها آماده می‌کنند. تحلیل‌گران امنیتی blobهای باینریِ کپی‌شده از captureها یا نوشته‌های مهندسی معکوس را دیکد می‌کنند. همچنین یک بررسی سریع برای اطمینان از صحت هنگام پیاده‌سازی طرح‌های bit-packing خودتان یا هنگام توضیح endianness و کدگذاری کاراکتر به یک هم‌تیمی است.

    قالب‌ها، نوع‌ها یا گونه‌های داده

    در حالت 8 بیت به‌ازای هر کاراکتر، ابزار متن را از طریق UTF-8 رفت‌وبرگشت می‌دهد تا کاراکترهای دارای اَکسنت و ایدئوگراف‌های CJK به‌درستی کدگذاری و دیکد شوند (مثلاً 'é' به 11000011 10101001 تبدیل می‌شود). در حالت 16 بیت به‌ازای هر کاراکتر، ابزار واحدهای کد UTF-16 را خروجی می‌دهد که برای تطبیق با نحوهٔ نمایش داخلی رشته‌ها در JavaScript مفید است. جداکننده‌ها صرفاً ظاهری هستند — دیکودر فاصله‌ها، کاماها و خط‌های جدید را نرمال‌سازی می‌کند.

    دام‌های رایج و حالت‌های لبه‌ای

    ترکیب گروه‌های 8 بیتی و 16 بیتی در یک ورودی خروجی نادرست تولید می‌کند — یکی را انتخاب کنید و ثابت بمانید. جفت‌های جانشین (surrogate pair) در UTF-16 به‌صورت دو گروه 16 بیتی جداگانه خروجی می‌شوند؛ تلاش برای دیکد کردن آن‌ها در حالت 8 بیت به‌ازای هر کاراکتر، کاراکتر اصلی را بازتولید نمی‌کند. هنگام دیکد کردن یک رشتهٔ بیتِ بدون جداکننده، طول کل باید مضربی کامل از اندازهٔ گروه‌بندی بیت باشد وگرنه ابزار خطا گزارش می‌کند.

    چه زمانی از این ابزار استفاده کنیم در برابر کُد

    برای تبدیل‌های تک‌موردی، دموهای کلاسی و آماده‌سازی سریع فیکسچرها از ابزار مرورگر استفاده کنید. در کد برنامه، برای تبدیل UTF-8 از `TextEncoder` / `TextDecoder`، در Node.js از `Buffer.from(str, 'utf8')`، یا در Python از `bytes(str, 'utf-8')` استفاده کنید — این‌ها استریمینگ، حالت‌های خطا و تشخیص BOM را مدیریت می‌کنند؛ چیزهایی که یک مبدل ایستا انجام نمی‌دهد.