يقترح فريق التطوير التحول إلى UTF-8

في الآونة الأخيرة ، تم نشر بيان للمبرمجين من تل أبيب على موقع Hacker News. واقترحوا جعل UTF-8 هو الحل الافتراضي لتخزين السلاسل النصية في الذاكرة والتواصل.

ولدت المادة مناقشة نشطة ، وقررنا فهم الموقف ، والنظر في حجج خبراء تكنولوجيا المعلومات - بما في ذلك مهندسي IBM ومتخصصي اتحاد W3C.


صور - رافائيل شالر - Unsplash

ترميز الوضع


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

التنسيق الداخلي لـ Windows هو UTF-16 . في الوقت نفسه، والكتاب من البيان، الذي نوقش في أخبار هاكر، ويقول أن في وقت واحد يستخدم Microsoft حيث يونيكود وwidechar كما مرادفات لUTF-16 و UCS-2 (والذي يعتبرسلف UTF-16 الأصلي). أما بالنسبة لنظام Linux ، فمن المعتاد استخدام UTF-8 فيه. مجموعة متنوعة من ترميزات أحيانا يؤدي إلى حقيقة أن معطوبة الملفات أثناء نقل بين أجهزة الكمبيوتر مع أنظمة تشغيل مختلفة.

يمكن أن يكون توحيد الصناعة حلاً - الانتقال إلى UTF-8 لتخزين السلاسل النصية في الذاكرة أو على القرص وتبادل الحزم عبر الشبكة.

لماذا يعتبر UTF-8 أفضل من UTF-16


إحدى الحجج الرئيسية هي أن UTF-8 يقلل من حجم الذاكرة التي تشغلها الأحرف في الأبجدية اللاتينية (يتم استخدامها من قبل العديد من لغات البرمجة). يتم ترميز الأحرف اللاتينية والأرقام وعلامات الترقيم الشائعة في UTF-8 مع بايت واحد فقط. علاوة على ذلك ، تتوافق رموزها مع الرموز الموجودة في ASCII ، والتي توفر التوافق العكسي.

كما يقول خبراء IBM أن UTF-8 أفضل للتفاعل مع الأنظمة التي لا تتوقع وصول بيانات متعددة البايت. تحتوي ترميزات Unicode الأخرى على العديد من وحدات البايت الفارغة. يمكن أن تجدها الأدوات المساعدة في نهاية الملف. على سبيل المثال ، في UTF-16 ، يبدو الحرف A على النحو التالي : 00000000 01000001. في خط C ، يمكن قطع هذا التسلسل. في حالة UTF-8 ، الصفر هو NUL فقط. في هذا الترميز ، يتم تمثيل الحرف الأول من الأبجدية اللاتينية على أنه 01000001 - لا توجد مشاكل مع انقطاع غير متوقع.

للسبب نفسه ، يوصي المهندسون في اتحاد W3C باستخدام UTF-8 عند تطوير واجهات الواجهة الأمامية. حتى تتمكن من تجنب الصعوبات في تشغيل أجهزة الشبكة.


صور - كريستيان ستراند - Unsplash

هاكر المقيم أخبار لاحظتأن UTF-8 يسمح لك بالتقاط أخطاء التشفير في المراحل المبكرة. في ذلك ، يتم قراءة البايتات بالتسلسل ، وتحدد البتات العلوية عددها. وبالتالي ، يتم احتساب قيمة نقطة الرمز بشكل لا لبس فيه ولا يحتاج مطورو التطبيقات إلى التفكير في مشكلة Little-Endian أو Big-Endian .

حيث UTF-16 لديه ميزة


يمكن أن تشغل الأحرف اللاتينية وعلامات الترقيم ذاكرة أقل في UTF-8 (مقارنة بـ UTF-16). تتطلب بعض نقاط الرمز نفس عدد وحدات البايت في كلا الترميزين - على سبيل المثال ، هذه الحقيقة صحيحة للغة اليونانية والعبرية.

يختلف الوضع مع الشخصيات الآسيوية - في حالة UTF-8 ، يحتاجون إلى مساحة أكبر . على سبيل المثال، الحرف الصيني ستكون ممثلة من قبل ثلاثة بايت: 11101000 10101010 10011110 . سيبدو الحرف نفسه في UTF-16 بالشكل 10001010 10011110 .

ما هي النتيجة


الجدل حول مشكلة إدخال ترميز واحد مستمر منذ فترة طويلة. تم طرح هذا السؤال قبل أحد عشر عامًا تقريبًا في سلسلة رسائل حول Stack Overflow. Pavel Radzivilovsky (Pavel Radzivilovsky) - شارك فيه أحد مؤلفي البيان. منذ ذلك الحين، UTF-8 بالفعل أصبحت واحدة من أكثر ترميزات شعبية على شبكة الإنترنت. وقد تم الاعتراف بها باعتبارها إلزامية لكل "المواقف" في WHATWG ، وهي مجموعة من المتخصصين في HTML و API التي تطور المعايير ذات الصلة.

في الآونة الأخيرة ، بدأت Microsoft أيضًا في التوصية باستخدام UTF-8 في تطوير تطبيقات الويب. ربما ستمتد هذه الممارسة في المستقبل إلى مرافق أخرى.



:

« www»: -
« IaaS»: 1cloud
: AdTech- GDPR?
10- —
,


All Articles