مكافئ يونيكود

تُعرّف خاصية التكافؤ في يونيكود بأنها تحديدٌ في معيار ترميز الأحرف يونيكود ، ينص على أن بعض تسلسلات نقاط الترميز تُمثل حرفًا واحدًا تقريبًا. وقد أُضيفت هذه الخاصية إلى المعيار لضمان التوافق مع مجموعات الأحرف القياسية الموجودة مسبقًا ، والتي غالبًا ما كانت تتضمن أحرفًا متشابهة أو متطابقة.

يُقدّم نظام يونيكود مفهومين أساسيين: التكافؤ المعياري والتوافق. يُفترض أن تسلسلات نقاط الترميز المُعرّفة على أنها متكافئة معياريًا لها نفس المظهر والمعنى عند طباعتها أو عرضها. على سبيل المثال، تُعرّف يونيكود نقطة الترميز U+006E n (حرف لاتيني صغير N) متبوعة بـ U+0303 ̃ (علامة التلدة) على أنها متكافئة معياريًا مع نقطة الترميز U+00F1 ñ (حرف لاتيني صغير N مع علامة التلدة) . لذلك، يجب عرض هذه التسلسلات بنفس الطريقة، ويجب التعامل معها بنفس الطريقة في تطبيقات مثل ترتيب الأسماء أبجديًا أو البحث ، ويمكن استبدالها ببعضها البعض. وبالمثل، يمكن ترميز كل مقطع لفظي من الهانغول، المُشفّر كحرف واحد، بشكل مكافئ كمجموعة من حرف جامو مُتصل في البداية؛ وحرف جامو مُتصل بحروف العلة؛ وحرف جامو مُتصل في النهاية، إن وُجد.

تُعرَّف المتتاليات المتوافقة بأنها قد تختلف في مظهرها، ولكنها تحمل المعنى نفسه في بعض السياقات. فعلى سبيل المثال، تُعرَّف المتتالية U+FB00 LATIN SMALL LIGATURE FF ، وهي رابطة طباعية ، بأنها متوافقة مع المتتالية U+0066 U+0066 (حرفان لاتينيان "f")، ولكنها ليست مكافئة لها من الناحية النظرية. قد تُعامل المتتاليات المتوافقة بالطريقة نفسها في بعض التطبيقات (مثل الفرز والفهرسة ) دون غيرها، وقد تُستبدل ببعضها في بعض الحالات دون غيرها. كما أن المتتاليات المكافئة من الناحية النظرية متوافقة أيضًا، ولكن العكس ليس صحيحًا بالضرورة.

يُحدد المعيار أيضًا إجراءً لتطبيع النصوص ، يُسمى تطبيع يونيكود ، والذي يستبدل التسلسلات المتكافئة من الأحرف بحيث يتم اختزال أي نصين متكافئين إلى نفس تسلسل نقاط الترميز، والذي يُسمى شكل التطبيع أو الشكل الطبيعي للنص الأصلي. بالنسبة لكلا مفهومي التكافؤ، يُحدد يونيكود شكلين طبيعيين، أحدهما مُركب بالكامل (حيث يتم استبدال نقاط الترميز المتعددة بنقاط مفردة كلما أمكن ذلك) والآخر مُفكك بالكامل (حيث يتم تقسيم النقاط المفردة إلى نقاط متعددة).

مصادر التكافؤ

تكرار الأحرف

لأسباب تتعلق بالتوافق أو غيرها، يُخصص نظام يونيكود أحيانًا رمزين مختلفين لكيانات تُعتبر في جوهرها نفس الحرف. على سبيل المثال، يُرمز للحرف "A" مع علامة تشكيل دائرية أعلاه بالرمز U+00C5 Å (حرف لاتيني كبير A مع علامة تشكيل دائرية أعلاه) أو بالرمز U+212B Å (علامة أنغستروم). مع ذلك، يُعرَّف رمز الأنغستروم بأنه ذلك الحرف السويدي، ومعظم الرموز الأخرى التي تُمثل حروفًا (مثل ⟨V⟩ للفولت ) لا تملك رمزًا منفصلاً لكل استخدام . عمومًا ، تُعرَّف رموز الأحرف المتطابقة تمامًا بأنها متكافئة من الناحية المعيارية.

دمج الأحرف وتكوينها مسبقًا

ولضمان الاتساق مع بعض المعايير القديمة، يوفر يونيكود نقاط رمزية فردية للعديد من الأحرف التي يمكن اعتبارها أشكالًا معدلة لأحرف أخرى (مثل U+00F1 لـ "ñ" أو U+00C5 لـ "Å") أو كمجموعات من حرفين أو أكثر (مثل U+FB00 للربط أو U+0132 للحرف الهولندي ij ).

لضمان التوافق مع المعايير الأخرى وزيادة المرونة، يوفر يونيكود أيضًا رموزًا للعديد من العناصر التي لا تُستخدم بمفردها، بل تُستخدم لتعديل أو دمج حرف أساسي سابق . ومن أمثلة هذه الأحرف المركبة : U+0303 ̃ (علامة التلدة المركبة ) وعلامة التشكيل اليابانية داكوتين ( U+3099 (علامة الصوت المجهور للكاتاكانا والهيراغانا المركبة )).

في سياق يونيكود، فإن تركيب الأحرف هو عملية استبدال نقاط الترميز لحرف أساسي متبوعًا بحرف واحد أو أكثر من الأحرف المركبة في حرف واحد مُركب مسبقًا ؛ وتفكيك الأحرف هو العملية المعاكسة.

بشكل عام، يتم تعريف الأحرف المركبة مسبقًا على أنها مكافئة بشكل قانوني لتسلسل حرفها الأساسي وعلامات التشكيل اللاحقة، بغض النظر عن الترتيب الذي قد تظهر به.

مثال

أميلي بصيغتيها المتكافئتين في نظام يونيكود ( NFC وNFD )
حرف NFCأمéلأناهـ
نقطة رمز NFC0041006d00e9006c00690065
نقطة رمز NFD0041006d00650301006c00690065
شخصية NFDأمهـ◌́لأناهـ

عدم التفاعل الطباعي

تستخدم بعض النصوص بانتظام علامات دمج متعددة لا تتفاعل، بشكل عام، من الناحية الطباعية، ولا تحتوي على أحرف مُركّبة مسبقًا لهذه التركيبات. يمكن تخزين أزواج من هذه العلامات غير المتفاعلة بأي ترتيب. عمومًا، تكون التسلسلات البديلة متكافئة من الناحية المعيارية. كما تحدد القواعد التي تُعرّف تسلسلها في الشكل المعياري ما إذا كانت تُعتبر متفاعلة أم لا.

الاصطلاحات الطباعية

يُوفّر نظام يونيكود رموزًا لبعض الأحرف أو مجموعات الأحرف التي تُعدّل لأسباب جمالية فقط (مثل الأحرف المركبة ، وأحرف الكاتاكانا بنصف العرض ، أو الأحرف اللاتينية كاملة العرض المستخدمة في النصوص اليابانية) أو لإضافة دلالات جديدة دون فقدان الدلالة الأصلية (مثل الأرقام في المواضع السفلية أو العلوية ، أو الأرقام المُحاطة بدائرة (مثل "①") الموروثة من بعض الخطوط اليابانية). يُعتبر هذا التسلسل متوافقًا مع تسلسل الأحرف الأصلية (الفردية وغير المُعدّلة) لصالح التطبيقات التي لا يكون فيها المظهر والدلالات المُضافة ذات صلة. مع ذلك، لا يُعتبر التسلسلان متكافئين بشكلٍ قاطع، إذ أن التمييز بينهما له قيمة دلالية ويؤثر على عرض النص.

أخطاء في الترميز

لا تسمح ترميزات UTF-8 و UTF-16 (وبعض ترميزات Unicode الأخرى) بجميع تسلسلات وحدات الترميز الممكنة . تقوم برامج مختلفة بتحويل التسلسلات غير الصالحة إلى أحرف Unicode باستخدام قواعد متباينة، بعضها يُفقد الكثير من البيانات (مثل تحويل جميع التسلسلات غير الصالحة إلى نفس الحرف). يُمكن اعتبار ذلك شكلاً من أشكال التوحيد، وقد يُؤدي إلى نفس الصعوبات التي تُسببها الترميزات الأخرى.

تطبيع

يجب أن يأخذ برنامج معالجة النصوص الذي يُطبّق وظيفة البحث والمقارنة في سلاسل يونيكود في الحسبان وجود نقاط ترميز متكافئة. في غياب هذه الميزة، لن يتمكن المستخدمون الذين يبحثون عن تسلسل نقاط ترميز معين من العثور على رموز أخرى لا يمكن تمييزها بصريًا ولكنها تمتلك تمثيلًا مختلفًا لنقاط الترميز، وإن كان متكافئًا من الناحية المعيارية.

الخوارزميات

يُوفّر نظام يونيكود خوارزميات توحيد قياسية تُنتج تسلسلًا فريدًا (طبيعيًا) لنقاط الترميز لجميع التسلسلات المتكافئة؛ ويمكن أن تكون معايير التكافؤ إما معيارية (NF) أو معيارية توافق (NFK). وبما أنه يُمكن اختيار العنصر المُمثّل لفئة التكافؤ بشكلٍ عشوائي ، فإنّ هناك أشكالًا معيارية متعددة مُمكنة لكل معيار تكافؤ. يُوفّر يونيكود شكلين طبيعيين ذوي دلالة لكل من معياري التوافق: الشكلان المُركّبان NFC وNFKC، والشكلان المُفكّكان NFD وNFKD. يفرض كلٌّ من الشكلين المُركّب والمُفكّك ترتيبًا معياريًا على تسلسل نقاط الترميز، وهو أمرٌ ضروري لكي تكون الأشكال الطبيعية فريدة.

لمقارنة أو البحث في سلاسل يونيكود، يمكن للبرامج استخدام الصيغ المركبة أو المفككة؛ ولا يهمّ الاختيار طالما أنه نفسه لجميع السلاسل المستخدمة في البحث أو المقارنة، إلخ. من ناحية أخرى، قد يؤثر اختيار معايير التكافؤ على نتائج البحث. على سبيل المثال، بعض الوصلات الطباعية مثل U+FB03 ( والأرقام الرومانية مثل U+2168 ( )، وحتى الرموز السفلية والعلوية ، مثل U+2075 ( )، لها نقاط ترميز يونيكود خاصة بها. لا يؤثر التوحيد القياسي (NF) على أي من هذه الوصلات، لكن توحيد التوافق (NFK) يفكك وصلة ffi إلى حروفها المكونة، وبالتالي فإن البحث عن U+0066 ( f ) كسلسلة فرعية سينجح في توحيد NFKC لـ U+FB03، لكنه لن ينجح في توحيد NFC لـ U+FB03. وينطبق الأمر نفسه عند البحث عن الحرف اللاتيني I (U+0049) في الرقم الروماني المركب (U+2168). وبالمثل، يتم تحويل الرقم ⁵ (U+2075) إلى 5 (U+0035) عن طريق مطابقة الأرقام.

قد لا يكون تحويل الأحرف المرتفعة إلى ما يعادلها في النص الأساسي مناسبًا لبرامج النصوص المنسقة ، لأن معلومات الأحرف المرتفعة تُفقد خلال هذه العملية. وللسماح بهذا التمييز، تحتوي قاعدة بيانات أحرف يونيكود على وسوم تنسيق توافقية تُقدم تفاصيل إضافية حول تحويل التوافق. [ 1 ] في حالة الربط بين الأحرف، يكون هذا الوسم ببساطة <br> <compat>، بينما يكون <br> للأحرف المرتفعة <super>. وتأخذ معايير النصوص المنسقة، مثل HTML، وسوم التوافق في الحسبان. فعلى سبيل المثال، يستخدم HTML ترميزه الخاص لوضع الحرف U+0035 في موضع مرتفع. [ 2 ]

الأشكال الطبيعية

تم إدراج أشكال التطبيع الأربعة لـ Unicode والخوارزميات (التحويلات) للحصول عليها في الجدول أدناه.

NFD Normalization Form Canonical Decompositionيتم تحليل الأحرف عن طريق التكافؤ المتعارف عليه، ويتم ترتيب الأحرف المركبة المتعددة بترتيب محدد.
تكوين الشكل الكنسي لتطبيع NFCيتم تفكيك الشخصيات ثم إعادة تركيبها عن طريق التكافؤ المتعارف عليه.
تحليل توافق شكل التطبيع NFKDيتم تحليل الأحرف حسب التوافق، ويتم ترتيب الأحرف المتعددة المركبة بترتيب محدد.
تركيبة توافق شكل التطبيع NFKCيتم تحليل الأحرف حسب التوافق، ثم إعادة تركيبها حسب التكافؤ المتعارف عليه.

جميع هذه الخوارزميات هي تحويلات متماثلة ، مما يعني أن السلسلة الموجودة بالفعل في أحد تلك الأشكال المعيارية لن يتم تعديلها إذا تمت معالجتها مرة أخرى بواسطة نفس الخوارزمية.

لا تُغلق الأشكال العادية تحت عملية دمج السلاسل النصية . [ 3 ] بالنسبة لسلاسل Unicode المعيبة التي تبدأ بحرف علة هانغول أو حرف جامو متصل في النهاية ، يمكن أن يؤدي الدمج إلى كسر التركيب.

مع ذلك، فهي ليست أحادية (إذ تربط رموزًا وتسلسلات أصلية مختلفة بنفس التسلسل المعياري)، وبالتالي فهي ليست تقابلية أيضًا (لا يمكن استعادتها). على سبيل المثال، يتم توسيع سلسلتي يونيكود المتميزتين "U+212B" (علامة الأنجستروم "Å") و"U+00C5" (الحرف السويدي "Å") بواسطة NFD (أو NFKD) إلى التسلسل "U+0041 U+030A" (الحرف اللاتيني "A" وحلقة الربط فوق "°")، والذي يتم اختزاله بعد ذلك بواسطة NFC (أو NFKC) إلى "U+00C5" (الحرف السويدي "Å").

يمكن تحديد حرف واحد (بخلاف كتلة مقطع هانغول) يتم استبداله بآخر في إطار عملية التوحيد في جداول يونيكود من خلال وجود حقل توافق غير فارغ ولكنه يفتقر إلى علامة توافق.

الترتيب المتعارف عليه

يهتم الترتيب المتعارف عليه أساسًا بترتيب سلسلة من الأحرف المركبة. في الأمثلة الواردة في هذا القسم، يُفترض أن الأحرف هي علامات تشكيل ، ولكن بشكل عام، بعض علامات التشكيل ليست أحرفًا مركبة، وبعض الأحرف المركبة ليست علامات تشكيل.

يُخصص نظام يونيكود لكل حرف فئة دمج ، تُحدد بقيمة عددية. الأحرف غير المدمجة تحمل رقم الفئة 0، بينما تحمل الأحرف المدمجة قيمة فئة دمج موجبة. وللحصول على الترتيب القياسي، يجب فرز كل سلسلة فرعية من الأحرف ذات قيمة فئة دمج غير صفرية وفقًا لقيمة فئة الدمج باستخدام خوارزمية فرز مستقرة . يُعد الفرز المستقر ضروريًا لأن الأحرف المدمجة ذات قيمة الفئة نفسها تتفاعل طباعيًا، وبالتالي لا يُعتبر الترتيبان الممكنان متكافئين.

على سبيل المثال، الحرف U+1EBF (ế)، المستخدم في الأبجدية الفيتنامية ، له علامتا نبرة حادة ومُغلقة. ويُمكن تحليله إلى ثلاثة أحرف: U+0065 (e) U+0302 (علامة النبرة المُغلقة) U+0301 (علامة النبرة الحادة). ومجموعتا العلامتين هما 230، لذا فإن U+1EBF لا يُعادل U+0065 U+0301 U+0302.

بما أن ليس لكل التسلسلات المركبة مكافئ مُركب مسبقًا (التسلسل الأخير في المثال السابق لا يمكن اختزاله إلا إلى U+00E9 U+0302)، فإن حتى الشكل العادي لـ NFC يتأثر بسلوك الأحرف المركبة.

أخطاء ناتجة عن اختلافات التطبيع

عندما يتشارك تطبيقان بيانات يونيكود، لكنهما يُجريان عملية توحيدها بشكل مختلف، قد ينتج عن ذلك أخطاء وفقدان للبيانات. في إحدى الحالات، قام نظام التشغيل OS X بتوحيد أسماء ملفات يونيكود المُرسلة من برنامجي مشاركة الملفات والطابعات Netatalk و Samba . لم يتعرف Netatalk وSamba على أسماء الملفات المُعدّلة باعتبارها مُكافئة للأصلية، مما أدى إلى فقدان البيانات. [ 4 ] [ 5 ] يُعدّ حلّ هذه المشكلة أمرًا معقدًا، لأن عملية التوحيد ليست قابلة للعكس دون فقدان البيانات.

انظر أيضاً

ملحوظات

  1. "UAX #44: قاعدة بيانات أحرف يونيكود" . Unicode.org . تم الاطلاع عليه بتاريخ 20 نوفمبر 2014 .
  2. "اليونيكود في لغة XML ولغات الترميز الأخرى" . Unicode.org . تم الاطلاع عليه بتاريخ 20 نوفمبر 2014 .
  3. ما الذي يجب فعله بشأن دمج النصوص؟
  4. "netatalk / Bugs / #349 volcharset:UTF8 doesn't work from Mac" . SourceForge . تم الاطلاع عليه بتاريخ 20 نوفمبر 2014 .
  5. "rsync، سامبا، UTF8، أحرف دولية، يا إلهي!" . 2009. مؤرشف من الأصل في 9 يناير 2010.

مراجع