شرح لترميز أحرف Unicode

click fraud protection

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

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

ترميز الأحرف

يقوم كل ترميز الأحرف بتعيين رقم لكل حرف يمكن استخدامه. يمكنك إنشاء ترميز حرف الآن.

على سبيل المثال ، يمكنني أن أقول أن الرسالة أ يصبح الرقم 13 ، أ = 14 ، 1 = 33 ، # = 123 ، وهكذا.

هذا هو المكان الذي تأتي فيه المعايير على مستوى الصناعة. إذا كانت صناعة الكمبيوتر بالكامل تستخدم نفس نظام ترميز الأحرف ، فيمكن لكل كمبيوتر عرض نفس الأحرف.

ما هو Unicode؟

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

بطبيعة الحال ، يريد بقية العالم نفس نظام الترميز لشخصياتهم أيضًا. ومع ذلك ، قليلاً ، أثناء الاعتماد على المكان الذي كنت فيه ، قد يكون هناك حرف مختلف معروض لرمز ASCII نفسه.

instagram viewer

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

أصبح من الواضح أن هناك حاجة إلى مخطط ترميز جديد للحرف ، وهو عندما تم إنشاء معيار Unicode. الهدف من Unicode هو توحيد جميع أنظمة التشفير المختلفة بحيث يمكن الحد من الخلط بين أجهزة الكمبيوتر قدر الإمكان.

في هذه الأيام ، يحدد معيار Unicode القيم لأكثر من 128000 حرف ويمكن رؤيتها في اتحاد Unicode. لديها العديد من أشكال ترميز الأحرف:

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

ملحوظة: UTF تعني وحدة تحويل Unicode.

نقاط الرمز

نقطة الرمز هي القيمة المعطاة للحرف في معيار Unicode. تتم كتابة القيم وفقًا لـ Unicode كأرقام سداسية عشرية ولها بادئة U +.

على سبيل المثال ، لترميز الأحرف التي نظرنا إليها سابقًا:

  • أ هو U + 0041
  • أ هو U + 0061
  • 1 هو U + 0031
  • # هو U + 0023

تنقسم نقاط الرموز هذه إلى 17 قسمًا مختلفًا يسمى الطائرات ، ويتم تحديدها بالأرقام من 0 إلى 16. تحتوي كل طائرة على 65.536 نقطة رمز. الطائرة الأولى ، 0 ، تحمل الأحرف الأكثر استخدامًا وتعرف باسم الطائرة الأساسية متعددة اللغات (BMP).

وحدات التعليمات البرمجية

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

اعتبر UTF-16 كمثال. كل رقم 16 بت هو وحدة تعليمات برمجية. يمكن تحويل وحدات الكود إلى نقاط كود. على سبيل المثال ، يحتوي رمز الملاحظة المسطحة ♭ على نقطة رمز U + 1D160 ويعيش على المستوى الثاني من معيار Unicode (المستوى الإيديوغرافي التكميلي). سيتم ترميزه باستخدام مجموعة وحدات التعليمات البرمجية ذات 16 بت U + D834 و U + DD60.

بالنسبة إلى BMP ، تكون قيم نقاط الرمز ووحدات الرمز متطابقة. هذا يسمح باختصار لـ UTF-16 الذي يوفر الكثير من مساحة التخزين. تحتاج فقط إلى استخدام رقم 16 بت واحد لتمثيل تلك الأحرف.

كيف تستخدم جافا Unicode؟

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

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

الشيء المهم الذي يجب تذكره هو أن نوع بيانات حرف واحد لم يعد بإمكانه تمثيل جميع أحرف Unicode.

instagram story viewer