ما هي مواصفة يونيكود Unicode؟
(الثلاثاء, أكتوبر 24, 2000)
تؤمن مواصفة يونيكود (الترميز الموحد)، رقماً مميزاً لكل رمز من الرموز التي يستخدمها الكمبيوتر، وذلك بغض النظر عن منصة التشغيل، والبرنامج التطبيقي، واللغة المستخدمة.
وكما هو معروف، فإن أجهزة الكمبيوتر تتعامل أساساً مع الأرقام، وتقوم بتخزين الأحرف والرموز الأخرى، عن طريق تعيين رقم لكل منها. وقبل اختراع نظام يونيكود (الترميز الموحد)، كانت هناك المئات من أنظمة الترميز (encoding systems) لتعيين هذه الأرقام. ولم يكن من الممكن لنظام واحد للترميز أن يحتوي على رموز كافية لهذا الغرض. فالاتحاد الأوربي وحده، على سبيل المثال، يتطلب عدة أنظمة ترميز من أجل تغطية لغاته كلها. وحتى بالنسبة للغة واحدة، كالإنجليزية، لم يكن هناك نظام واحد ملائم لجميع الأحرف، وعلامات الترقيم، والرموز التقنية المستخدمة.
كما أن أنظمة الترميز هذه تتعارض مع بعضها البعض. أي أنه من الممكن لنظامي ترميز مختلفين، أن يستخدما الرقم نفسه لرمزين مختلفين، أو أرقاماً مختلفة للرمز نفسه. ويحتاج أي كمبيوتر (لاسيما المزوّدات)، لدعم العديد من أنظمة الترميز المختلفة. ورغم ذلك، فإن البيانات قد تتعرض لخطر الفساد، حيثما يتم نقل البيانات بين أنظمة الترميز المختلفة، أو المنصات المختلفة.
مواصفة يونيكود تغيّر هذا الأمر بأكمله
تزوّدنا مواصفة يونيكود برقم مميز لكل رمز، بغض النظر عن المنصة، أو البرنامج، أو اللغة. وقد تم تبني مواصفة يونيكود (Unicode Standard) من قبل كبار الشركات الصناعية، مثل شركة Apple، وشركة HP، وشركة IBM، وشركة JustSystem، وشركة Microsoft، وشركة Oracle، وشركة SAP، وشركة SUN، وشركة Sybase، وشركة Unisys، وشركات كثيرة غيرها. وتعتبر مواصفة يونيكود مطلوبة من قبل المواصفات القياسية الحديثة، مثل لغة XML، ولغة Java، ولغة ECMAScript (JavaScript)، ولغة LDAP، ولغة COBRA 3.0، ولغة WML، إلى آخره، كما تمثّل هذه المواصفة الطريقة الرسمية لتنفيذ مواصفة ISO/IEC 10646. وتدعم هذه المواصفة العديد من أنظمة التشغيل، وجميع المتصفّحات، ومنتجات أخرى كثيرة. إن ظهور مواصفة Unicode Standard، وتوفر الأدوات الداعمة لها، تجعلها من بين أكثر التوجهات البرمجية العالمية الحديثة أهميةً.
إن دمج نظام يونيكود في تطبيقات المزوّد/الزبون (Client/Server)، وفي التطبيقات المتعددة الطبقات، وفي مواقع شبكة ويب، يؤمّن وفراً كبيراً في التكلفة، عبر استخدام مجموعات الرموز الموروثة القديمة. ويتيح استخدام نظام يونيكود، إمكانية قيام منتج برمجي واحد، أو موقع ويب واحد، بالوصول إلى هذا النظام عبر منصات متنوعة ولغات مختلفة ودول متعددة، بدون الحاجة إلى إعادة هندسته. فهو يسمح بنقل البيانات عبر أنظمة مختلفة، بدون أن يُفسد هذه البيانات.
مواصفة يونيكود (Unicode Standard)- مقدمة فنية
مواصفة يونيكود (Unicode Standard) هي عبارة عن نظام ترميز عالمي، يُستخدم لتمثيل النصوص من أجل معالجتها على الكمبيوتر. وتعتبر هذه المواصفة متوافقة تماماً مع الإصدارة الثانية من المواصفة العالمية International Standard ISO/IEC 10464-1:2000، وتحتوي على النقاط ذاتها المتعلقة بالرموز والترميز، والتي نجدها في مواصفة ISO/IEC 10646. كما تزوّدنا مواصفة يونيكود بمعلومات إضافية عن الرموز واستخداماتها. وتعتبر جميع التطبيقات المتوافقة مع نظام يونيكود، متوافقة حكماً مع مواصفة ISO/IEC 10646 .
تزوّدنا مواصفة يونيكود بطريقة متجانسة لترميز النصوص العادية متعددة اللغات، وتنظّم الفوضى العارمة، التي كانت سبباً في صعوبة تبادل ملفات النصوص على المستوى العالمي. وسيجد مستخدمو الكمبيوتر، الذين يتعاملون مع النصوص متعددة اللغات، سواء كانوا رجال أعمال، أو علماء اللغات، أو باحثين، أو غيرهم، أن مواصفة يونيكود تبسّط عملهم بشكل كبير. كما أن علماء الرياضيات، والفنيين، الذين يستخدمون رموزاً رياضية وتقنية، سيجدون أيضاً أن مواصفة يونيكود مفيدة جداً في أعمالهم.
يعتمد تصميم مواصفة يونيكود على بساطة وتجانس شيفرة آسكي ASCII، إلا أنه يتخطى بشكل كبير محدودية شيفرة آسكي، في ترميز الأحرف الأبجدية اللاتينية فقط. وتزوّدنا مواصفة يونيكود بإمكانية ترميز جميع الرموز المستخدمة في اللغات المكتوبة في العالم بأسره. فهي تستخدم بشكل تلقائي ترميز 16 بت، الذي يمكنه تأمين نقاط ترميز لأكثر من 65000 رمز. ولكي تبقى عملية الترميز بسيطة وفعالة، فإن مواصفة يونيكود Standard Unicode، تعيّن اسماً وقيمة عددية فريدين من نوعهما، لكل رمز من الرموز.
وعلى حين أن 65000 رمز يعتبر كافياً لتغطية آلاف الرموز المستخدمة في لغات العالم الرئيسية، إلا أن مواصفة يونيكود ومواصفة ISO 10646، تقدّمان آلية للتوسّع، تسمى UTF-16، قادرة على ترميز مليون رمز إضافي، بدون الحاجة إلى استخدام أنماط معقدة، أو إلى استخدام شيفرات مفتاح escape. ويعتبر هذا العدد كافياً لتلبية احتياجات الترميز لجميع الرموز المعروفة، بما فيها التغطية الكاملة لجميع النصوص التاريخية في العالم.
ما هي الرموز التي تشملها مواصفة يونيكود؟
تعرّف مواصفة يونيكود كل الرموز المستخدمة في اللغات الرئيسية المكتوبة في العالم. وتتضمّن رموز اللغات الأوربية، ورموز اللغات التي تتم كتابتها من اليمين إلى اليسار، كاللغة العربية، ورموز اللغات الآسيوية.
وتشمل مواصفة يونيكود أيضاً علامات التنقيط، والأحرف المميزة (diacritics)، والرموز الرياضية، والرموز التقنية، والأسهم.. إلخ. وتزوّدنا بشيفرات للأحرف المميزة (diacritics)، وهي عبارة عن علامات معدّلة للرموز مثل علامة (~)، التي تُستخدم مع بعض الرموز الأساسية، لترميز الأحرف المصوتة أو المنبورة (مثل حرف ñ.
وبشكل عام، تزوّدنا مواصفة يونيكود بشيفرات ذات 49194 رمزاً من أبجديات العالم، ومجموعات الرموز التابعة لهذه اللغات.
يوجد حوالي 8000 نقطة تشفير غير مستخدمة حالياً، يمكن استخدامها في التوسع المستقبلي لترميز 16 بت، كما يوجد 917476 نقطة ترميز إضافية من خلال آلية التوسع UTF-16. وتحتفظ مواصفة يونيكود أيضاً بمقدار 6400 نقطة تشفير للاستخدامات الشخصية، والتي يمكن لمطوري البرامج والعتاد استخدامها داخلياً، للرموز والأشكال الخاصة بهم. وتوفر آلية التوسع UTF-16 ، بين أيدينا 131068 نقطة تشفير للاستخدامات الخاصة، للحالات التي تكون فيها 6400 نقطة غير كافية لبعض التطبيقات الخاصة.
صيغ الترميز
لا تكتفي مواصفات الترميز بتعريف هوية كل رمز، وقيمته الرقمية أو موقع شيفرته، بل إنها تحدد أيضاً كيفية تمثيل هذه القيمة بالبتات. وتعرّف مواصفة Unicode Standard Version 3.0 صيغتين للترميز تمثّلان هيئات التحويل في مواصفة ISO 10646، وهماUTF-8 وUTF-16.
وتعتبر هيئات التحويل في مواصفة Unicode/ISO/IEC 10646، وهما UTF-8 وUTF-16، طريقة لتحويل الترميز إلى بتّات فعلية مستخدمة في التطبيق. وتستخدم هيئة UTF-16 نقاط ترميز عيار 16 بت، وتسمح أن يُستخدم مجال معيّن من الرموز كآلية توسّع، بهدف تأمين مليون رمز إضافي، اعتماداً على أزواج رموز عيار 16 بت.
تعرف هيئة التحويل الأخرى باسم UTF-8 . وتعتبر هذه الهيئة طريقة لتحويل جميع رموز يونيكود إلى ترميز متغير الطول من البايتات. وتكمن فائدة هذه الهيئة في أن رموز يونيكود المقابلة لشيفرة ASCII المألوفة، تحمل نفس قيم البايتات التي تحملها شيفرة ASCII، وأن رموز يونيكود المحولة إلى هيئة UTF-8 يمكن استخدامها مع الكثير من البرمجيات المتوفرة، بدون الحاجة إلى كثيرٍ من إعادة صياغة البرامج. ويدعم اتحاد Unicode Consortium، بشكل كامل، استخدام هيئة UTF-8 لتحقيق مواصفة Unicode Standard. وبهذا يمكن تحويل أي رمز من رموز يونيكود، المعبر عنه بصيغة UTF-16 عيار 16 بت، إلى صيغة UTF-8، وإعادته إلى حالته الأصلية، بدون فقدان أية معلومات.
قاعدة التصميم
للقيام بعمل ناجح في ترميز ومعالجة وترجمة النصوص، يجب أن تكون مجموعة الرموز شاملة وفعالة وموحدة وواضحة. وتعتبر هذه المتطلبات القاعدة الأساسية لتصميم مواصفة Unicode Standard.
تحديد عناصر النص
يتم تمثيل اللغات المكتوبة باستخدام عناصر نصية لتشكيل الكلمات والجمل. وقد تكون هذه العناصر عبارة عن أحرف مثل “w”، أو“M”، أو رموز كتلك المستخدمة في لغة هيراغان اليابانية (Japanese Hiragan)، لتمثيل المقاطع، أو الأحرف التصويرية (ideographs)، كتلك المستخدمة في اللغة الصينية لتمثيل الكلمات الكاملة أو المفاهيم.
يتغّير تعريف عناصر النص، في الغالب، حسب العملية المطبقة على النص. ففي اللغة الإسبانية القديمة، مثلاً، يعتبر الرمز "II" عنصراً نصياً واحداً. لكن عند كتابة الكلمات الإسبانية على الكمبيوتر، فإنه يعتبر عنصرين منفصلين: "I" و"I".
لتجنب تحديد ما هو عنصر نص، وما هو ليس بعنصر نص في العمليات المختلفة، تحدد مواصفة يونيكود عناصر تشفير (تسمى الرموز). ويعتبر عنصر التشفير أساسياً لمعالجة النصوص على الكمبيوتر. وفي معظم الأحوال، فإن عناصر التشفير تمثّل عناصر النص الأكثر استخداماً. وفي حالة العنصر "II" في اللغة الإسبانية، فإن مواصفة يونيكود تعرّف كل عنصر "I" على أنه عنصر تشفير منفصل. وتعتبر عملية جمع عنصرين من "I"، من أجل التصنيف الأبجدي، من مهام البرمجيات التي تعالج النص. وكمثال آخر، فإن كل حرف صغير أو كبير في الأبجدية الإنجليزية يعتبر عنصر ترميز واحد.
معالجة النصوص
يشمل تعامل الكمبيوتر مع النصوص عمليات المعالجة والترميز. ولنفرض على سبيل المثال، أن أحد المستخدمين يقوم بطباعة نصوص على لوحة المفاتيح، باستخدام معالج نصوص. فتتلقى برمجيات النظام رسالة تدل على أن المستخدم قد ضغط على المفاتيح اللازمة للحرف "T"، المرمّز U+0054. ويخزن حينها معالج النصوص الرقم في الذاكرة، ثم يمرره إلى برمجيات العرض، المسؤولة عن إظهار الحرف على الشاشة. وتستخدم برمجيات العرض، التي قد تكون برنامجاً لإدارة النوافذ أو جزءاً من معالج النصوص ذاته، باستخدام هذا الرقم كفهرس لإيجاد صورة الحرف "T"، ورسمها على شاشة المرقاب Monitor. وتستمر هذه العملية مع قيام المستخدم بطباعة المزيد من الأحرف والرموز. تتعامل مواصفة يونيكود مع النصوص المرمّزة، ونصوص دلالات الألفاظ فقط. ولا تتعامل مع أي عملية أخرى تتم على النص. ويمكن على سبيل المثال، أن يقوم برنامج معالجة النصوص بتفقّد دخل المستخدم بعد أن تم ترميزه، بحثاً عن الأخطاء الإملائية، وإصدار صوت صافرة إذا وجد أية أخطاء. أو يمكنه أن يحشر فواصل سطرية (line breaks)، عندما يصل عدد الرموز الداخلة إلى عدد معين، اعتباراً من آخر فاصل سطري. وتمتاز مواصفة يونيكود في أنها لا تحدد كيفية إجراء هذه العمليات، طالما أن عمليات الترميز وفك الترميز، تتم بشكلها صحيح.
تفسير الرموز وإظهار الأحرف الرسومية
إن الفارق بين تحديد نقطة الترميز وبين إظهارها على الشاشة أو الورق، يعتبر هاماً جداً لفهم دور مواصفة يونيكود في معالجة النصوص. ويعتبر الرمز المعرّف عن طريق نقطة ترميز يونيكود، دخلاً مجرّداً، مثل الحرف اللاتيني A ("LATIN CHARACTER CAPITAL A")، أو الرقم البنغالي 5 ("BENGALI DIGIT 5"). والعلامة المنقوشة على الورق أو الشاشة-المسماة glyph-هي تمثيل مرئي للرمز.
لا تعرّف مواصفة يونيكود الصور المنقوشة (glyphs)، بل تعرّف طريقة تفسير الرموز، وليس طريقة إظهار النقوش (glyphs). ويعتبر محرك الإظهار البرمجي أو العتادي في الكمبيوتر، مسؤولاً عن ظهور الرموز على الشاشة. كما لا تحدد مواصفة يونيكود حجم أو شكل أو اتجاه الرموز على الشاشة.