متوفر أيضًا بلغات أخرى: English · Español · Português · Français
تحويل EBCDIC إلى ASCII: سبع صفحات ترميز
حوّل بايتات EBCDIC إلى نص والعكس، واعرف أي البايتات تعني شيئًا آخر على حاسوب مركزي غير حاسوبك.
ما EBCDIC؟
EBCDIC ترميز الحروف الذي وضعته IBM لحواسيبها المركزية في مطلع الستينيات، ولا يزال موطنًا لكمّ هائل من بيانات المصارف والتأمين والدوائر الحكومية. فإن فتحت يومًا ملفًّا خارجًا من حاسوب مركزي فوجدت طلاسم تكاد تُقرأ، فـ EBCDIC هو السبب عادةً: البايتات سليمة، لكنها لا تعني ما يفترضه محرّرك.
وأول ما ينبغي معرفته أن EBCDIC ليس ترميزًا واحدًا بل عائلة، وأفرادها غير متفقين. تحمل هذه الأداة سبعةً منهم — وهم من تطبّقهم فعلًا مكتبةٌ قياسية عامة الغرض — وتتيح لك التحويل في الاتجاهين وهي تبيّن أي بايتاتك كانت الستّ الأخرى ستقرؤها قراءةً مختلفة.
وثانيها أغرب، وهو سبب كون فحص مدى الحروف خطأً في قابلية النقل لا مسألة ذوق.
طريقة الاستعمال
- اختر الاتجاه وصفحة الترميز. منتقي الصفحة ظاهر دائمًا ولا يخمّن أبدًا، لأن المحوّل الذي يختار من تلقائه هو بعينه الخطأ الذي تعرضه هذه الأداة. وإن جهلت أي صفحة يستعمل ملفٌّ ما، فجدول الاختلافات أدناه هو السبيل إلى معرفتها.
- الصق بايتاتك أو نصّك. يقبل النظام الست عشري المسافات والفواصل والبادئة 0x، ويقرأ السلسلة الطويلة رقمين رقمين. وما ليس ست عشريًّا يُذكر بدل أن يُتخطّى في صمت.
- اقرأ اللوحات أدناه. واحدة تعرض كل بايت في مُدخَلك تختلف عليه الصفحات السبع. وأخرى تمشي في مدى الحروف وتعدّ ما فيه ممّا ليس حرفًا. وثالثة تخبرك أتحتمل هذه الصفحة الذهاب والإياب أم لا.
الحروف ليست متتابعة
في ASCII تمتدّ الحروف الصغيرة من 97 إلى 122 دون شيء بينها، ولهذا يكتب الجميع فحص مدًى ليعرفوا أالحرف حرفٌ أم لا. وفي EBCDIC هذا الفحص خطأ، وليس بقليل.
ففي الصفحة الأمريكية الحرف a هو 0x81 والحرف z هو 0xA9. وذلك واحد وأربعون قيمة بايت لستة وعشرين حرفًا، فيلتهم المدى خمس عشرة قيمة ليست حروفًا. وتنكسر السلسلة مرتين: بين i وj تقفز القيمة ثمانيًا، وبين r وs تقفز تسعًا. وترسم الأداة المدى كاملًا للصفحة التي اخترتها وتُبرز الدخلاء، لتعدّهم بنفسك.
والسبب البطاقة المثقّبة. فقد صُمّم EBCDIC ليُقرأ بايت الحرف مباشرةً من ثقوب المنطقة والرقم في البطاقة، ولم تكن المنطقة تعطي أكثر من تسعة مواضع قبل أن تبدأ التي تليها. فوُزّعت الحروف في مجموعات من تسعة وتسعة وثمانية، والفجوات هي حيث انتهت كل منطقة. وترتيبٌ كان في غاية المعقولية لقارئ بطاقات صار بعد ستين سنة فخًّا لفحص من سطر واحد.
أما الأرقام فمتتابعة: من 0 إلى 9 تمتدّ من 0xF0 إلى 0xF9 بلا انقطاع. الحروف وحدها المقطوعة، وهذا بعينه سبب بقاء الخطأ: فنصف ما تتذكّره عن الترتيب صحيح.
تختلف الصفحات على الأقواس لا على الحروف
خذ أشيع صفحتين لاتينيتين، الأمريكية والدولية. تختلفان في سبع قيم بايت بالضبط من أصل 256، والحروف السبعة المعنية هي القوسان المعقوفان والشرطة القائمة وعلامة التعجّب والقبّعة ورمز السنت ورمز النفي.
وليس هذا استبدالًا بل خلطًا: فالحروف السبعة نفسها تشغل مواضع البايت السبعة نفسها في الصفحتين، بترتيب مختلف. وكل الحروف والأرقام متطابقة. فملفّ النثر ينتقل بين النظامين دون خدش، وملفّ الشيفرة يصل وقد صارت أقواسه رموز عملات. ولهذا يُذكر الأمر بوصفه مشكلة أقواس لا مشكلة ترميز: فالضرر متركّز في الحروف التي تعتمد عليها لغة البرمجة بالضبط، وغائب عمّا سواها.
وعبر الصفحات السبع هنا، لا يعني الشيء نفسه في جميعها إلا 150 من قيم البايت الـ256. ولوحة الاختلافات مقصورة عمدًا على بايتات مُدخَلك لا على الجدول كله، لأن السؤال الجدير بالجواب هو أيُقرأ ملفك قراءةً أخرى في مكان آخر.
حدود مُعلَنة
سبع صفحات ليست كلّها. فقد عرّفت IBM أكثر من ذلك بكثير، والسبع هنا هي ما تطبّقه مكتبة قياسية عامة الغرض، وهو ما أتاح توليد الجداول من مصدر بدل كتابتها باليد. فإن كان ملفك يستعمل صفحة ليست في القائمة فلا حيلة لهذه الأداة، ولن تصلحه تجربة البقية.
والذهاب والإياب ليس شاملًا، وتقول الأداة ذلك صفحةً صفحة بدل وعدٍ جامع. فخمس من السبع تحتمل فكّ الترميز وإعادته للقيم الـ256 كلها. أما الصفحة العبرية فتترك ثمانية وثلاثين موضع بايت دون إسناد، فتلك لا تعود من النص: لم يكن فيها شيء أصلًا. والصفحة اليونانية مختلفة وألطف: تُسنِد الـ256 كلها، لكن سبعًا من قيم بايتها تتقاسم حرف حشو واحدًا، فلا يمكن إعادة ترميز إلا واحدة من المجموعة وتضيع الستّ الباقية. عيبان مختلفان يبدوان في الخلاصة عيبًا واحدًا، ولهذا يُذكران منفصلين.
وأخيرًا فمتصفحك لا يستطيع شيئًا من هذا بنفسه. فمعيار الترميزات في الوِب يعدّد ما يجب أن يدعمه المتصفح ويقول إنه يجب ألّا يدعم غيره؛ وEBCDIC ليس في تلك القائمة ولن يكون. ولهذا تُشحن الجداول مع الصفحة بدل تسليمها إلى فاكّ ترميز مدمج، وهو المعيار نفسه الذي تدور حوله قائمة ترميزات الحروف في هذا الموقع، منظورًا إليه من الجهة الأخرى.
لماذا هي مجانية؟
سبعة جداول من 256 مدخلًا تبلغ نحو خمسة كيلوبايت بعد الضغط، ويجري متصفحك التحويل وأنت تكتب. ولا خادم يرى بياناتك، فلا شيء يُحسب عليك ولا حساب تنشئه.
ولا يُرفع شيء. وما تلصقه يبقى في هذا التبويب.