لا يفهم الحاسوب إلا الأرقام. ولكي يعرض الحرف A يحتاج إلى جدول يقول: "الرقم 65 هو A". هذا الجدول هو ترميز الحروف. وأقدم ترميز ما زال مستخدمًا في كل مكان اسمه ASCII، أما خلفه يونيكود فهو ما يتيح لك اليوم قراءة العربية والروسية والرموز التعبيرية في الصفحة نفسها.

قبل ASCII: التلغراف

كانت شيفرة مورس في القرن التاسع عشر تمثل الحروف بإشارات، لكنها صُممت لأذن عامل التلغراف لا للآلة، إذ كان لكل حرف طول مختلف.

ثم اعتمدت المبرقات الكاتبة في مطلع القرن العشرين ترميزًا من 5 بتات، مشتقًا من ترميز الفرنسي إميل بودو، وتم توحيده باسم ITA2. لكن 5 بتات لا تعطي إلا 32 تركيبة، وهذا لا يكفي للحروف والأرقام معًا. فكان حرف خاص يبدّل بين وضع "الحروف" ووضع "الأرقام"، وكان خطأ واحد في الإرسال كفيلًا بتحويل رسالة كاملة إلى أرقام.

ولادة ASCII (1963-1967)

في مطلع الستينيات، كان لكل مصنّع حواسيب ترميزه الخاص، فلم تكن الآلات قادرة على تبادل النصوص. فجمعت الجمعية الأمريكية للمعايير لجنة، ضمّت IBM وAT&T وغيرهما، لوضع ترميز مشترك: "الرمز القياسي الأمريكي لتبادل المعلومات"، أي ASCII.

اختارت اللجنة 7 بتات، أي 128 حرفًا. ولم تكن النسخة الأولى عام 1963 تضم حتى الحروف الصغيرة، فقد أُضيفت في مراجعة 1967 التي انتشرت بعد ذلك في كل مكان.

ماذا يضم جدول ASCII؟

  • من 0 إلى 31، و127: حروف التحكم. لا تظهر على الشاشة، وكانت تُستخدم لتشغيل المبرقات. وما زال بعضها مستعملًا: الجدولة (9)، والسطر الجديد (10)، وإرجاع العربة (13)، وEsc (27).
  • 32: المسافة.
  • من 48 إلى 57: الأرقام من 0 إلى 9.
  • من 65 إلى 90: الحروف الكبيرة من A إلى Z، ومن 97 إلى 122: الحروف الصغيرة.
  • والباقي: علامات الترقيم والرموز مثل @ و# و$ و{.
رموز ASCII الـ128: حروف التحكم، وعلامات الترقيم، والأرقام، والحروف الكبيرة والصغيرة.
رموز ASCII الـ128: حروف التحكم، وعلامات الترقيم، والأرقام، والحروف الكبيرة والصغيرة.

والترتيب ليس عشوائيًا: فالحروف متتالية أبجديًا مما يسهّل الفرز، والفرق بين الحرف الكبير والصغير ثابت دائمًا (32)، مما يجعل التحويل بينهما أمرًا بسيطًا على البرامج.

مشكلة الحروف غير الإنجليزية

128 حرفًا تكفي للإنجليزية لا لبقية العالم. فلا يضم ASCII حرف é ولا ñ، ولا أي حرف عربي أو روسي أو صيني.

ولأن البايت يتكون من 8 بتات، استُغل البت الفائض لإضافة 128 حرفًا أخرى. لكن كل منطقة ملأتها على طريقتها، وهذه هي "صفحات الترميز": ISO-8859-1 وWindows-1252 لأوروبا الغربية، وISO-8859-5 للسيريلية، وWindows-1256 للعربية، وShift-JIS لليابانية…

فصار البايت الواحد يعني حرفًا فرنسيًا في فرنسا وحرفًا عربيًا في المغرب. وإذا قُرئ نص بصفحة ترميز خاطئة صار غير مقروء، وهذا ما يسمى "Mojibake". ويتذكر كثير من مستخدمي العربية الرسائل التي كانت تظهر على شكل "ÇáÓáÇã" بدل "السلام". ولم يكن ممكنًا الجمع بين العربية والفرنسية والروسية في مستند واحد.

يونيكود: رقم لكل حرف

صدرت النسخة الأولى من يونيكود عام 1991، فحلّت المشكلة من جذورها: كل حرف في كل كتابة يحصل على رقم فريد، يسمى "نقطة الترميز"، أيًّا كان البلد أو البرنامج.

  • U+0041: A
  • U+0627: ا (الألف)
  • U+0628: ب (الباء)
  • U+042F: Я (الحرف السيريلي "يا")
  • U+1F600: 😀

يضم يونيكود اليوم أكثر من 150 ألف حرف: جميع الكتابات الحديثة، وكثيرًا من الكتابات القديمة، والرموز الرياضية، والرموز التعبيرية. وأول 128 نقطة ترميز فيه هي حروف ASCII بالضبط.

UTF-8: كيف تُخزَّن الحروف

يمنح يونيكود الأرقام، ويبقى تخزينها في بايتات. والترميز الأكثر انتشارًا هو UTF-8، الذي صممه كين تومسون وروب بايك عام 1992:

  • تشغل حروف ASCII بايتًا واحدًا كما في السابق، فكل ملف ASCII هو أيضًا ملف UTF-8 صالح؛
  • وتشغل الحروف العربية والعبرية واليونانية والسيريلية والحروف المشكولة بايتين؛
  • وتشغل معظم الحروف الصينية واليابانية والكورية 3 بايتات؛
  • وتشغل الرموز التعبيرية 4.
في UTF-8 يشغل الحرف من 1 إلى 4 بايتات حسب نقطة ترميزه في يونيكود.
في UTF-8 يشغل الحرف من 1 إلى 4 بايتات حسب نقطة ترميزه في يونيكود.

وهذا التوافق مع ASCII سرّ نجاحه: فاليوم يستخدم أكثر من 98% من مواقع الويب ترميز UTF-8. وإذا ظهر نص عربي برموز غريبة، فالسبب في الغالب أن برنامجًا قرأ نصًا مرمّزًا بـUTF-8 كأنه بترميز آخر.

أين نصادف ASCII اليوم؟

  • في الشيفرة البرمجية: الكلمات المفتاحية وأسماء المتغيرات والعوامل كلها تقريبًا بـASCII.
  • في بروتوكولات الويب والبريد (HTTP وSMTP) التي تتبادل أوامرها نصًا بـASCII.
  • في الطرفية، حيث ما زالت الألوان تُتحكَّم بتسلسلات تبدأ بحرف Esc.
  • في الوجوه النصية مثل :-) وفن ASCII، اللذين وُلدا حين لم يكن متاحًا سوى هذه الحروف الـ95 القابلة للطباعة.

للمزيد

Abdelmounaim Akadid

Abdelmounaim Akadid

شغوف بالتكنولوجيا وتطوير الويب واللغات. مؤسس ClavierVirtuel.com، أداة صُممت لتسهيل الكتابة بعدة لغات على الجميع.

LinkedIn