كيفية تحويل hex إلى نص
- الصق سلسلة hex، مثل
48 65 6C 6C 6Fأو0x48,0x65أو\x48\x65. تعمل الأداة مع أي مزيج من الفواصل. - يظهر النص بعد فك ترميزه فورًا. إذا بدت الأحرف غير صحيحة، فاختر ترميزًا آخر: UTF-8 أو ASCII/Latin-1 أو UTF-16.
- انسخ النص أو نزّله كملف. واضغط زر التبديل لتحويل النص مجددًا إلى hex.
كيف يعمل تحويل hex إلى ASCII؟
كل زوج من أرقام hex يمثّل بايتًا واحدًا بقيمة من 00 إلى FF. في ASCII وUTF-8، البايتات من 20 إلى 7E هي أحرف قابلة للطباعة، لذا تُقرأ 48 65 6C 6C 6F على أنها H وe وl وl وo: «Hello». أما الأحرف خارج ASCII، كالحروف العربية، فتشغل عدة بايتات في UTF-8.
| Hex | الحرف |
|---|---|
0A | تغذية سطر (سطر جديد) |
0D | رجوع إلى بداية السطر |
20 | مسافة |
21 / 2C / 2E | ! / , / . |
30–39 | الأرقام 0–9 |
41–5A | الأحرف الكبيرة A–Z |
61–7A | الأحرف الصغيرة a–z |
C3 A9 | é في UTF-8 |
E2 82 AC | € في UTF-8 |
اختيار الترميز الصحيح
- UTF-8 – المعيار المعتمد على الويب وفي معظم الملفات وواجهات API، وهو يدعم العربية. والنص المكتوب بـ ASCII فقط هو نص UTF-8 صالح.
- ASCII / Latin-1 (Windows-1252) – بايت واحد لكل حرف، للنصوص الأوروبية الغربية من الأنظمة القديمة. كل بايت يقابل حرفًا، لذا لا يفشل فك الترميز أبدًا.
- UTF-16 LE/BE – بايتان لكل حرف، ويُستخدم في واجهات Windows API وسلاسل Java وJavaScript:
48 00 69 00تعني «Hi» في UTF-16 LE.
إذا ظهرت رموز �، فهذا يعني أن بعض البايتات غير صالحة في الترميز المحدد – أو أن بيانات hex هي بيانات ثنائية كصورة أو قيمة hash أو بيانات مضغوطة وليست نصًا.
تحويل hex إلى نص (string) برمجيًا
- Python:
bytes.fromhex('48656c6c6f').decode() - Node.js:
Buffer.from('48656c6c6f', 'hex').toString() - JavaScript في المتصفح:
new TextDecoder().decode(Uint8Array.from('48656c6c6f'.match(/../g), (h) => parseInt(h, 16))) - Linux وmacOS:
echo 48656c6c6f | xxd -r -p
الأسئلة الشائعة
ما الفرق بين تحويل hex إلى نص وتحويل hex إلى ASCII؟
يغطي ASCII عدد 128 حرفًا (البايتات 00–7F): الحروف الإنجليزية والأرقام وعلامات الترقيم. أما تحويل hex إلى نص فيشمل أيضًا أحرف اللغات الأخرى كالعربية والرموز التعبيرية (emoji)، التي يخزّنها UTF-8 في 2–4 بايت. وبالنسبة إلى النص الإنجليزي البسيط، تعطي الطريقتان النتيجة نفسها.
لماذا تظهر رسالة خطأ عن بايت غير مكتمل؟
يحتاج كل بايت إلى رقمين hex بالضبط. وعادةً ما يعني العدد الفردي من الأرقام أن صفرًا بادئًا مفقود (اكتب 0A وليس A) أو أن حرفًا ضاع أثناء النسخ. وتوضّح الرسالة موضع المشكلة.
هل يمكن فك ترميز hex يحتوي على البادئتين 0x أو \x؟
نعم. تُزال تلقائيًا البادئات مثل 0x و\x و%، وكذلك المسافات وفواصل الأسطر والفواصل والنقطتان والشرطات، لذا يمكنك لصق مصفوفات C وسلاسل البايتات في Python وتفريغات hex مباشرة.
هل تُرفع بياناتي إلى أي مكان؟
لا. يتم فك ترميز hex بواسطة JavaScript في متصفحك، ولا تغادر البيانات جهازك أبدًا.