محوّل النص إلى ثماني والثماني إلى نص

اكتب كل بايت من نصك عددًا ثمانيًا من ثلاثة أرقام، أو أعد قائمة من قيم البايتات الثمانية إلى نص مقروء. تعمل الأداة مع UTF-8 ومع كثير من مجموعات الأحرف القديمة.

تعمل بالكامل داخل متصفحك، ولا يُرفع أي شيء.

طريقة الاستخدام

  1. اختر «ترميز» لتحويل النص إلى ثماني، أو «فك الترميز» لإعادة القيم الثمانية إلى نص.
  2. اكتب المدخلات أو الصقها، أو افتح ملفًا لتحويل بايتاته.
  3. اختر «الفاصل» للمخرجات: «مسافة» أو «بلا» أو «فاصلة» أو «سطر جديد».
  4. انسخ النتيجة أو نزّلها كملف.

ما هو النظام الثماني؟

يكتب النظام الثماني، أو Base8، الأعداد بالأرقام من 0 إلى 7. ويمثّل كل رقم ثماني ثلاث بتات بالضبط، ولهذا انتشر النظام الثماني على الحواسيب الأولى التي كانت أحجام الكلمات فيها من مضاعفات الثلاثة، مثل PDP-8 ذي الكلمة المكوّنة من 12 بتًا وPDP-10 ذي الكلمة المكوّنة من 36 بتًا. واليوم يبقى حاضرًا أساسًا في تسلسلات الهروب وفي أذونات الملفات في Unix.

يحمل البايت قيمة بين 0 و255، أي بين 0 و377 بالنظام الثماني. يكتب هذا المحوّل كل بايت من المدخلات في ثلاثة أرقام ثمانية بالضبط مع أصفار بادئة، فتأتي المجموعات كلها بالعرض نفسه، بل يمكن وصلها دون فاصل. ويُحوَّل النص أولًا إلى بايتات بترميز النص المحدد: بايت واحد لكل حرف في نصوص ASCII العادية، ومن بايتين إلى أربعة لكل حرف في أنظمة الكتابة الأخرى بترميز UTF-8.

تسلسلات الهروب الثمانية

تتيح لك لغات C وC++ وPython وPerl والأمر printf في الصدفة (shell) كتابة البايت في صورة شرطة مائلة عكسية يليها ما يصل إلى ثلاثة أرقام ثمانية: \101 هو الحرف A، و\012 هو حرف السطر الجديد (line feed).

تُخرج هذه الأداة أرقامًا مجردة بلا شرطات مائلة عكسية. ولبناء سلسلة مهرَّبة، خذ المخرجات المفصولة بمسافات، وضع شرطة مائلة عكسية مكان كل مسافة، ثم أضف واحدة قبل المجموعة الأولى. ولفك ترميز تسلسلات الهروب، افعل العكس وضع مسافات مكان الشرطات المائلة العكسية، لأن أداة فك الترميز لا تقبل إلا الأرقام والفواصل.

أذونات الملفات مثل 755 ثمانية أيضًا، لكنها أعداد لا نصوص. ولتحويل عدد كهذا إلى ثنائي أو عشري، استخدم محوّل أنظمة الأعداد.

النظام الثماني برمجيًا

# Python
' '.join(f'{b:03o}' for b in 'Hi'.encode())            # '110 151'
bytes(int(o, 8) for o in '110 151'.split()).decode()   # 'Hi'

# Shell
printf '\110\151\n'        # يطبع Hi
printf 'Hi' | od -An -to1   # 110 151

المواصفات

الأبجدية0-7
حجم المخرجات3 أرقام لكل بايت (300%)
الحشولا يوجد
المعيارترقيم ثماني موضعي
حساس لحالة الأحرفلا

أمثلة

المدخلات (UTF-8)المخرجات
Hello, World!110 145 154 154 157 054 040 127 157 162 154 144 041
Base64.is102 141 163 145 066 064 056 151 163
你好344 275 240 345 245 275

الأسئلة الشائعة

لماذا يتكون كل بايت من ثلاثة أرقام ثمانية؟

أكبر قيمة للبايت، وهي 255، تساوي 377 بالنظام الثماني، لذا تكفي ثلاثة أرقام دائمًا. وحشو القيم الأصغر بأصفار بادئة يجعل المجموعات كلها بالعرض نفسه، وهذا ما يسمح بإعادة تقسيم سلسلة بلا فواصل إلى بايتات.

كيف أفك ترميز أرقام ثمانية دون مسافات؟

الصق الأرقام سلسلةً واحدة متصلة. تقسّمها أداة فك الترميز إلى مجموعات من ثلاثة أرقام، لذا يجب أن يكون طولها من مضاعفات 3. وإن كانت بعض القيم أقل من ثلاثة أرقام، فافصل بينها بمسافات أو فاصلات أو أسطر جديدة بدلًا من ذلك.

لماذا تُرفض قيمة مثل 400؟

العدد الثماني 400 يساوي 256، وهو لا يتسع في بايت واحد. تمتد قيم البايتات الصالحة من 0 إلى 377، وتُبلغ أداة فك الترميز عن موضع أي مجموعة خارج هذا النطاق. أما الرقمان 8 و9 فليسا رقمين ثمانيين صالحين أصلًا.

هل يمكنني الحصول على القيم الثمانية لمجموعة أحرف أخرى؟

نعم. اخترها من قائمة «ترميز النص»، مثل Windows-1252 أو ISO-8859-1 للحصول على بايت واحد لكل حرف من أحرف أوروبا الغربية، أو GBK أو Shift_JIS للنصوص الصينية واليابانية.