محوّل النص إلى رموز ASCII/يونيكود
حوّل النص إلى قائمة من رموز الأحرف العشرية والعكس صحيح — يغطي نطاق يونيكود الكامل، وليس ترميز ASCII المكوّن من 7 بتات فقط.
1,071 مشاهدة
كيف تعمل الأداة
يُعالَج كل حرف تكتبه واحدًا تلو الآخر ويُحوَّل إلى نقطة رمزه في يونيكود (Unicode code point) — نظام الترقيم نفسه الذي تشكّل أول 128 قيمة منه، من 0 إلى 127، جدول ASCII الأصلي. ضمن هذا النطاق، تُشكّل الرموز من 32 إلى 126 الكتلة القابلة للطباعة: الحروف والأرقام وعلامات الترقيم ومسافة الفراغ. أما الرموز من 0 إلى 31 فهي أحرف تحكم، طبقة تاريخية متبقية من أجهزة التلكس والآلات الكاتبة التي كانت تستخدم رموزًا محددة لتحريك رأس الطباعة أو الورق بدلاً من طباعة رمز — الرمز 13 (carriage return) يعيد رأس الطباعة إلى بداية السطر، والرمز 10 (line feed) يقدّم الورق سطرًا واحدًا، وهذا الانقسام هو سبب اختلاف ملفات النصوص العادية على أنظمة التشغيل المختلفة حتى اليوم في كيفية تخزين نهاية السطر.
مثال: كتابة "Hi!" تُنتج قائمة الرموز 72, 105, 33 — الحرف الكبير H هو 72، والحرف الصغير i هو 105، وعلامة التعجب هي 33، وكلها ضمن النطاق القابل للطباعة 32-126. لصق تلك القائمة مرة أخرى في أداة فك الترميز يعيد بناء "Hi!" تمامًا، حرفًا بحرف.
الموضع الذي تتجاوز فيه هذه الأداة جدول ASCII الكلاسيكي هو الرموز 128 وما فوق. ذلك النطاق العلوي، المعروف بشكل غير رسمي باسم "ASCII الموسّع"، لم يُوحَّد قياسيًا أبدًا: بنى موزّعون ومناطق مختلفة صفحات رموز (code pages) مختلفة من 256 قيمة، وأسندوا رموزًا مختلفة للبايت نفسه. البايت الذي كان يعني "ğ" على صفحة رموز تركية معيّنة قد يعني حرفًا مختلفًا تمامًا، أو لا شيء قابلًا للطباعة إطلاقًا، على صفحة رموز نظام آخر. هذا التضارب هو بالضبط المشكلة التي صُمم UTF-8 ونقاط رموز يونيكود الكاملة لحلّها: بدلًا من بايت واحد لكل حرف بمعنى يعتمد على صفحة الرموز، يحصل كل حرف على هوية رقمية ثابتة تعني الشيء نفسه في كل مكان. لهذا السبب يُرمّز هذا المحوّل كل حرف كنقطة رمز يونيكود كاملة بدلاً من اختصاره إلى بايت واحد، بحيث تُحوَّل الحروف التركية مثل ğ وş وı وö وü وç والرموز التعبيرية بشكل موثوق.
ما يجب أن تعرفه
- النطاق القابل للطباعة: تقابل الرموز من 32 إلى 126 دائمًا حرفًا مرئيًا على أي نظام؛ أما أي شيء آخر فيحتاج إلى سياق (خط، أو صفحة رموز، أو يونيكود كامل) لتفسيره بشكل صحيح.
- أحرف التحكم لا تملك رمزًا مرئيًا: فك ترميز قيمة من 0 إلى 31 (أو 127، DEL) إلى نص لن يُظهر حرفًا قابلًا للطباعة — وهذا متوقَّع وليس خطأً، لأن هذه الرموز لم تكن مُعدّة أصلًا للعرض.
- ما وراء البايت 255: تمتد نقاط رموز يونيكود إلى ما هو أبعد بكثير من السقف القديم البالغ 256 قيمة — تعيش الرموز التعبيرية مثلًا في مئات الآلاف — وتتعامل هذه الأداة مع النطاق الكامل، لا مع قيمة بايت واحد فقط.
- رحلة ذهاب وإياب بلا فقدان: الترميز ثم فك الترميز يُعيدان نصك الأصلي تمامًا دائمًا، لأن كل نقطة رمز تقابل حرفًا واحدًا دون أي تقريب أو ضغط.
- يعمل بالكامل داخل متصفحك: لا يُرسَل أي نص إلى أي مكان، لذا فمن الآمن تحويل سلاسل نصية حساسة أو رموز مميزة أو كلمات مرور لأغراض تصحيح الأخطاء.
الأسئلة الشائعة
هل هذا حقًا ترميز ASCII، أم شيء أكثر منه؟
يغطي ترميز ASCII الحقيقي المكوّن من 7 بتات الرموز من 0 إلى 127 فقط (الحروف الإنجليزية والأرقام وعلامات الترقيم الأساسية). تستخدم هذه الأداة الفكرة نفسها لكنها توسّعها لتشمل نقاط رموز يونيكود الكاملة، لذا تُحوَّل الحروف العربية والرموز التعبيرية بشكل صحيح دون أي تلف.
ما الفاصل المستخدم في قائمة الرموز؟
الفواصل افتراضيًا، مع مسافة بعد كل رمز — لكن أداة فك الترميز تقبل أيضًا رموزًا مفصولة بمسافات بسيطة أو أسطر جديدة.
ما الفرق بين الرمز 10 والرمز 13؟
كلاهما من أحرف تحكم نهاية السطر التاريخية: الرمز 10 هو "تغذية السطر" (line feed) وينقل المؤشر سطرًا للأسفل، والرمز 13 هو "الإرجاع لبداية السطر" (carriage return) وينقل المؤشر إلى بداية السطر. يستخدم Unix رمز LF وحده، بينما استخدم Mac الكلاسيكي رمز CR وحده، ويستخدم Windows الاثنين معًا (CRLF) — وهذا الانقسام يعود مباشرة إلى أجهزة التلكس الفعلية.
لماذا تبدو الرموز فوق 127 مختلفة في أدوات أخرى؟
لأن ذلك النطاق لم يُوحَّد قياسيًا أبدًا. أسندت كل صفحة رموز "ASCII موسّع" خاصة بموزّع معيّن رموزها الخاصة للبايتات من 128 إلى 255، لذا يمكن أن تُفَكّ قيمة البايت نفسها إلى حروف مختلفة على أنظمة مختلفة. تتجنّب هذه الأداة هذه المشكلة كليًا بالعمل بيونيكود الكامل بدلًا من جدول ثابت من 256 قيمة.
هل يمكن لهذه الأداة التعامل مع الرموز التعبيرية والأحرف متعددة البايتات؟
نعم — تعيش الرموز التعبيرية والعديد من الرموز الأخرى في نقاط رمز أبعد بكثير من 255، وتُحوّل هذه الأداة كل واحد منها إلى قيمته العشرية الكاملة في يونيكود (بعض الرموز التعبيرية، مثل الأعلام، تُبنى فعليًا من نقطتي رمز، ما ستعرضه القائمة كرقمين منفصلين).
أدوات مشابهة
الإبلاغ عن مشكلة
محوّل النص إلى رموز ASCII/يونيكود
التعليقات
لا توجد تعليقات بعد — كن أول من يكتب تعليقًا!