innosys
01-11-2001, 12:22
أُنشئت مواصفة يونيكود (Unicode Standard) من قبل فريق يضم محترفي الكمبيوتر، وعلماء اللغات، والأكاديميين، لتصبح المواصفة القياسية العالمية للرموز، والتي يمكن استخدامها لترميز الرموز في أي مكان. وبغية تحقيق ذلك، فإن مواصفة يونيكود تتقيّد بمجموعة من المبادئ الأساسية وهي:
* الرموز ذات 16 بت
* الترتيب المنطقي
* الفعالية
* التوحيد
* الرموز وليس النقوش
* التركيب الديناميكي
* علم ودلالات الألفاظ
* التتابع المكافئ
* النص العادي
* قابلية التحويل
تم دمج مجموعات الرموز الخاصة بالكثير من المواصفات العالمية والمحلية والمؤسساتية، في مواصفة يونيكود Unicode Standard. وعلى سبيل المثال، فإن أول 256 رمز منها، قد أُخذ من مجموعة الرموز Latin1. يتم تجنب تكرار ترميز العناصر عن طريق توحيدها ضمن النصوص في اللغات، حيث تُعطى الرموز المتماثلة في الشكل شيفرة واحدة.
وقد أمكن دمج اللغات الصينية واليابانية والكورية، عن طريق تعيين شيفرة واحدة لكل حرف تصويري موجود في أكثر من واحدة من هذه اللغات. وذلك عوضاً عن إعطاء شيفرة منفصلة لكل حرف تصويري في كل مرة يظهر فيها في لغة مختلفة. (تتشارك هذه اللغات الثلاث بعدة آلاف رموز متماثلة، لأن مجموعات حروفها المصورة تطوّرت عن أصل واحد).
وتحدد مواصفة يونيكود خوارزمية، لعرض النصوص ثنائية الاتجاه، مثل النصوص العربية والإنجليزية. ويتم تخزين الرموز بشكل منطقي. وتتضمن مواصفة يونيكود رموزاً لتحديد تغيّرات الاتجاه، عند المزج بين الكتابات ذات الاتجاهات المختلفة. وبالنسبة لجميع الكتابات، فإن نصوص يونيكود تعتبر مرتبة ترتيباً منطقياً ضمن تمثيل الذاكرة، الذي يقابل الترتيب المعتمد خلال طبع النص على لوحة المفاتيح.
تعيين شيفرات الرموز
يتم تعيين رقم واحد عيار 16 بت إلى كل عنصر ترميز معرّف من قبل مواصفة Unicode Standard, Version 3. ويسمّى كل من هذه الأرقام ذات 16 بت، باسم نقطة تشفير (code point)، وعندما يشار إليه في النص، فإنه يوضع في قائمة ست عشرية (hexadecimal)، بعد الحرف "U". فنقطة الترميز U+0041 على سبيل المثال، هي الرقم الست عشري 0041 (المكافئ للرقم 65 في النظام العشري). وتمثّل هذه النقطة الرمز "A" في مواصفة يونيكود.
يتم أيضاً تعيين رقم مميز لكل رمز، ليدل عليه دون سواه. فالرقم U+0041 على سبيل المثال، يعيّن له اسم الرمز "LATIN CAPITAL LETTER A"، والرقم U+0A1B يعيّن له اسم الرمز "GURMUKHI LETTER CHA". وتعتبر أسماء يونيكود هذه مماثلة للأسماء المستخدمة في مواصفة ISO/IEC 10646 لنفس الرموز.
تقوم مواصفة يونيكود بتجميع الرموز مع بعضها في مجموعات، من خلال كتابات في أجزاء الشيفرة. وتمثّل النصوص (scripts) أي نظام من الرموز المترابطة مع بعضها. وتحافظ المواصفة على ترتيب الرموز في مجموعة المصدر كلما أمكنها ذلك. وعندما يتم ترتيب الرموز في النص بطريقة معينة -الترتيب الأبجدي مثلاً- فإن مواصفة يونيكود ترتبها في موقعها ضمن الشيفرة، باستعمال الترتيب ذاته حيثما كان ذلك ممكناً. وتختلف أجزاء الشيفرة بشكل كبير من حيث الحجم. فجزء الشيفرة Cyrillic، على سبيل المثال، لا يتجاوز 256 نقطة تشفير، في حين يحتوي الجزء CJK (العائد للغات الصينية واليابانية والكورية) على مجالات من آلاف نقاط التشفير.
يتم تجميع عناصر الشيفرة بشكل منطقي في مجموعات، من خلال مجال من نقاط التشفير، المسماة codespace. ويبدأ التشفير عند الرقم U+000 برموز أسكي (ASCII) القياسية، ويتابع مع الكتابات اليونانية، والسيريلية، والعربية، والعبرية، والهندية، والكتابات الأخرى. ويستمر مجال التشفير مع لغة Hiragana، ولغة Katakana، ولغة Bopomofo. وتأتي الحروف التصويرية للغة HAN متبوعة بمجموعة كاملة من حروف لغة Hangul الحديثة. ويتم الاحتفاظ بالمجال البديل لنقاط الشيفرة للتوسع المستقبلي مع هيئة UTF-16. وفي نهاية مجال التشفير، نجد مجالاً من نقاط التشفير محجوزاً للاستخدام الشخصي، ومتبوعاً بمجال من رموز التوافقية. وتعتبر رموز التوافقية أشكالاً بديلةً، تم ترميزها للتوافق مع المواصفات السابقة والمواصفات القديمة.
يوجد مجال من نقاط التشفير محجوزاً لمنطقة الاستخدام الشخصي. ولا تحمل نقاط التشفير هذه أي معنى عام، ويمكن استخدامها للرموز المتعلقة ببرنامج معين، أو من قبل مجموعة من المستخدمين لأغراضهم الخاصة. وقد تقوم على سبيل المثال، مجموعة من مصممي الرقصات بتصميم مجموعة من الرموز لأغراض الرقص، وترميز هذه الرموز باستخدام نقاط الترميز في مجال المستخدم. وقد تُستخدم نقاط التشفير ذاتها من قبل برامج أو مستخدمين آخرين. والنقطة الرئيسية في مجال المستخدم هي أن مواصفة يونيكود لا تعيّن أي شيئ لنقاط التشفير هذه، بل تحتفظ بها كمجال خاص بالمستخدم، وتتعهد بأن لا تعيّن لها أية رموز في المستقبل.
الامتثال لمواصفة يونيكود
تحدد مواصفة يونيكود متطلبات واضحة للامتثال لها، من خلال المبادئ ومعمارية الترميز التي تتضمنها. ويجب أن يحقق الامتثال إلى هذه المواصفة المتطلبات التالية كحد أدنى:
* يجب أن تكون الرموز ذات 16 بت.
* يجب ترجمة الرموز باستخدام دلالات الألفاظ في مواصفة يونيكود.
* عدم استخدام الشيفرات التي لم تعيّن لها رموز.
* عدم تشويه الرموز غير المعروفة.
مواصفة يونيكود ومواصفة ISO/IEC 10646
تعتبر مواصفة يونيكود وثيقة الصلة بالمواصفة العالمية ISO/IEC 10646-1:2000 (المعروفة باسم Universal Character Set، أو UCS اختصاراً). والتعاون الوثيق والتكاتف الرسمي بين اللجان المكلفة بهذه المواصفات، تمكن من تحقيق أقصى درجات التنسيق والتناسق، ما أبقى المواصفتين متوافقتين تماماً من حيث الرموز والترميز.
تعتبر الإصدارة Version 3.0، من مواصفة يونيكود (Unicode Standard)، مماثلة تماماً لمواصفة ISO/IEC 10646-1:2000. وينطبق هذا التماثل على جميع الرموز المرمّزة في المواصفتين، بما فيها رموز الأحرف التصورية في شرق آسيا (لغة Han).
وتسمح المواصفة العالمية ISO/IEC 10646 بشكلين من أشكال الاستخدام، يتضمّن الأول جزءين ثُمانيين (two-octet)، ويعرف باسم UCS-2، ويتضمّن الثاني أربع ثمانيات (four-octet)، ويعرف باسم UCS-4. وتعتمد مواصفة يونيكود على الشكل الثنائي الثمانيات (two-octet)، المكافئ لتمثيل الرموز باستخدام 16 بت. وعند استخدام الرموز الموسعة، تصبح مواصفة يونيكود مكافئة لهيئة UTF-16. Z
* الرموز ذات 16 بت
* الترتيب المنطقي
* الفعالية
* التوحيد
* الرموز وليس النقوش
* التركيب الديناميكي
* علم ودلالات الألفاظ
* التتابع المكافئ
* النص العادي
* قابلية التحويل
تم دمج مجموعات الرموز الخاصة بالكثير من المواصفات العالمية والمحلية والمؤسساتية، في مواصفة يونيكود Unicode Standard. وعلى سبيل المثال، فإن أول 256 رمز منها، قد أُخذ من مجموعة الرموز Latin1. يتم تجنب تكرار ترميز العناصر عن طريق توحيدها ضمن النصوص في اللغات، حيث تُعطى الرموز المتماثلة في الشكل شيفرة واحدة.
وقد أمكن دمج اللغات الصينية واليابانية والكورية، عن طريق تعيين شيفرة واحدة لكل حرف تصويري موجود في أكثر من واحدة من هذه اللغات. وذلك عوضاً عن إعطاء شيفرة منفصلة لكل حرف تصويري في كل مرة يظهر فيها في لغة مختلفة. (تتشارك هذه اللغات الثلاث بعدة آلاف رموز متماثلة، لأن مجموعات حروفها المصورة تطوّرت عن أصل واحد).
وتحدد مواصفة يونيكود خوارزمية، لعرض النصوص ثنائية الاتجاه، مثل النصوص العربية والإنجليزية. ويتم تخزين الرموز بشكل منطقي. وتتضمن مواصفة يونيكود رموزاً لتحديد تغيّرات الاتجاه، عند المزج بين الكتابات ذات الاتجاهات المختلفة. وبالنسبة لجميع الكتابات، فإن نصوص يونيكود تعتبر مرتبة ترتيباً منطقياً ضمن تمثيل الذاكرة، الذي يقابل الترتيب المعتمد خلال طبع النص على لوحة المفاتيح.
تعيين شيفرات الرموز
يتم تعيين رقم واحد عيار 16 بت إلى كل عنصر ترميز معرّف من قبل مواصفة Unicode Standard, Version 3. ويسمّى كل من هذه الأرقام ذات 16 بت، باسم نقطة تشفير (code point)، وعندما يشار إليه في النص، فإنه يوضع في قائمة ست عشرية (hexadecimal)، بعد الحرف "U". فنقطة الترميز U+0041 على سبيل المثال، هي الرقم الست عشري 0041 (المكافئ للرقم 65 في النظام العشري). وتمثّل هذه النقطة الرمز "A" في مواصفة يونيكود.
يتم أيضاً تعيين رقم مميز لكل رمز، ليدل عليه دون سواه. فالرقم U+0041 على سبيل المثال، يعيّن له اسم الرمز "LATIN CAPITAL LETTER A"، والرقم U+0A1B يعيّن له اسم الرمز "GURMUKHI LETTER CHA". وتعتبر أسماء يونيكود هذه مماثلة للأسماء المستخدمة في مواصفة ISO/IEC 10646 لنفس الرموز.
تقوم مواصفة يونيكود بتجميع الرموز مع بعضها في مجموعات، من خلال كتابات في أجزاء الشيفرة. وتمثّل النصوص (scripts) أي نظام من الرموز المترابطة مع بعضها. وتحافظ المواصفة على ترتيب الرموز في مجموعة المصدر كلما أمكنها ذلك. وعندما يتم ترتيب الرموز في النص بطريقة معينة -الترتيب الأبجدي مثلاً- فإن مواصفة يونيكود ترتبها في موقعها ضمن الشيفرة، باستعمال الترتيب ذاته حيثما كان ذلك ممكناً. وتختلف أجزاء الشيفرة بشكل كبير من حيث الحجم. فجزء الشيفرة Cyrillic، على سبيل المثال، لا يتجاوز 256 نقطة تشفير، في حين يحتوي الجزء CJK (العائد للغات الصينية واليابانية والكورية) على مجالات من آلاف نقاط التشفير.
يتم تجميع عناصر الشيفرة بشكل منطقي في مجموعات، من خلال مجال من نقاط التشفير، المسماة codespace. ويبدأ التشفير عند الرقم U+000 برموز أسكي (ASCII) القياسية، ويتابع مع الكتابات اليونانية، والسيريلية، والعربية، والعبرية، والهندية، والكتابات الأخرى. ويستمر مجال التشفير مع لغة Hiragana، ولغة Katakana، ولغة Bopomofo. وتأتي الحروف التصويرية للغة HAN متبوعة بمجموعة كاملة من حروف لغة Hangul الحديثة. ويتم الاحتفاظ بالمجال البديل لنقاط الشيفرة للتوسع المستقبلي مع هيئة UTF-16. وفي نهاية مجال التشفير، نجد مجالاً من نقاط التشفير محجوزاً للاستخدام الشخصي، ومتبوعاً بمجال من رموز التوافقية. وتعتبر رموز التوافقية أشكالاً بديلةً، تم ترميزها للتوافق مع المواصفات السابقة والمواصفات القديمة.
يوجد مجال من نقاط التشفير محجوزاً لمنطقة الاستخدام الشخصي. ولا تحمل نقاط التشفير هذه أي معنى عام، ويمكن استخدامها للرموز المتعلقة ببرنامج معين، أو من قبل مجموعة من المستخدمين لأغراضهم الخاصة. وقد تقوم على سبيل المثال، مجموعة من مصممي الرقصات بتصميم مجموعة من الرموز لأغراض الرقص، وترميز هذه الرموز باستخدام نقاط الترميز في مجال المستخدم. وقد تُستخدم نقاط التشفير ذاتها من قبل برامج أو مستخدمين آخرين. والنقطة الرئيسية في مجال المستخدم هي أن مواصفة يونيكود لا تعيّن أي شيئ لنقاط التشفير هذه، بل تحتفظ بها كمجال خاص بالمستخدم، وتتعهد بأن لا تعيّن لها أية رموز في المستقبل.
الامتثال لمواصفة يونيكود
تحدد مواصفة يونيكود متطلبات واضحة للامتثال لها، من خلال المبادئ ومعمارية الترميز التي تتضمنها. ويجب أن يحقق الامتثال إلى هذه المواصفة المتطلبات التالية كحد أدنى:
* يجب أن تكون الرموز ذات 16 بت.
* يجب ترجمة الرموز باستخدام دلالات الألفاظ في مواصفة يونيكود.
* عدم استخدام الشيفرات التي لم تعيّن لها رموز.
* عدم تشويه الرموز غير المعروفة.
مواصفة يونيكود ومواصفة ISO/IEC 10646
تعتبر مواصفة يونيكود وثيقة الصلة بالمواصفة العالمية ISO/IEC 10646-1:2000 (المعروفة باسم Universal Character Set، أو UCS اختصاراً). والتعاون الوثيق والتكاتف الرسمي بين اللجان المكلفة بهذه المواصفات، تمكن من تحقيق أقصى درجات التنسيق والتناسق، ما أبقى المواصفتين متوافقتين تماماً من حيث الرموز والترميز.
تعتبر الإصدارة Version 3.0، من مواصفة يونيكود (Unicode Standard)، مماثلة تماماً لمواصفة ISO/IEC 10646-1:2000. وينطبق هذا التماثل على جميع الرموز المرمّزة في المواصفتين، بما فيها رموز الأحرف التصورية في شرق آسيا (لغة Han).
وتسمح المواصفة العالمية ISO/IEC 10646 بشكلين من أشكال الاستخدام، يتضمّن الأول جزءين ثُمانيين (two-octet)، ويعرف باسم UCS-2، ويتضمّن الثاني أربع ثمانيات (four-octet)، ويعرف باسم UCS-4. وتعتمد مواصفة يونيكود على الشكل الثنائي الثمانيات (two-octet)، المكافئ لتمثيل الرموز باستخدام 16 بت. وعند استخدام الرموز الموسعة، تصبح مواصفة يونيكود مكافئة لهيئة UTF-16. Z