ترميز المحارف – Unicode وASCII وUTF-8

علوم الحاسوبالبيانات والنظام الثنائي15–16 سنة

جارٍ التحميل…

استخدمها مع صفي ✨ خصّصها بالذكاء الاصطناعي الإبلاغ عن مشكلة

اكتب سطرًا من النص لترى أن لكل محرف نقطة ترميز في Unicode، يخزّنها UTF-8 في 1 إلى 4 بايتات. انقر محرفًا لترى كيف تتوزع بتات نقطة ترميزه على البايتات، ولماذا تحتاج é و€ والرموز التعبيرية إلى 2 و3 و4 بايتات. تحوّل مساحة «فك ترميز البايتات» سلسلة من البايتات بالنظام الست عشري أو الثنائي إلى نص من جديد وتميّز البايتات غير الصالحة؛ وتُظهر مساحة «النص المشوّه» تفكك النص عند قراءة بايتات UTF-8 بترميز قديم أحادي البايت.

الدرس: البيانات النصية: ASCII وUnicode وترميز UTF-8، والمحارف مقابل البايتات

ماذا تعرض

تخزّن الحواسيب النص على شكل أعداد. يعطي Unicode كل محرف نقطة ترميز تُكتب U+ متبوعة بأرقام ست عشرية، بينما لا يغطي ASCII إلا 128 محرفًا باستخدام 7 بتات. يخزّن UTF-8 كل نقطة ترميز في 1 إلى 4 بايتات: يبدأ البايت الأول بـ 0 أو 110 أو 1110 أو 11110 ليعلن الطول، ويبدأ كل بايت تالٍ بـ 10. لذلك يبقى نص ASCII كما هو في UTF-8، أما الحروف المشكولة والرموز والرموز التعبيرية فتحتاج إلى بايتات أكثر من عدد المحارف. وتؤدي قراءة بايتات UTF-8 بترميز أحادي البايت إلى نص مشوّه يُسمى mojibake.

طريقة الاستخدام

اختر «عيّنة» أو اكتب في مربع «النص»، ثم انقر بطاقة محرف لترى بتاته مقسّمة إلى بايتات وقارن عدد المحارف بعدد البايتات. في «فك ترميز البايتات» اضغط «خذ من النص» أو اكتب بايتات ست عشرية، ثم اضغط «أضف بايتات خاطئة» لترى الأخطاء. في «النص المشوّه» بدّل بين Windows-1252 وLatin-1 وقارن الناتج.

المعاملات القابلة للتغيير

  • مساحة العمل ترميز النص إلى بايتات, فك ترميز البايتات إلى نص, النص المشوّه (mojibake)
  • نص العيّنة محارف من 1 و2 و3 و4 بايتات, ASCII فقط, حروف لاتينية مشكولة, رموز وعملات, رموز تعبيرية, أنظمة كتابة متعددة
  • عرض البايتات بالنظام الثنائي
  • الترميز الخاطئ المستخدم في القراءة Windows-1252, Latin-1 (ISO-8859-1)

أسئلة للاستكشاف

  1. لماذا يحتاج المحرف é إلى 2 بايت في UTF-8 بينما يحتاج e إلى بايت واحد فقط؟
  2. كم بايتًا يشغل سطر من خمسة رموز تعبيرية في UTF-8؟
  3. لماذا تظهر الكلمة café أحيانًا بالشكل café في صفحة ويب؟