ما هو Unicode ، UTF-8 ، UTF-16؟



Answers

  • يونيكود
    • هي مجموعة من الشخصيات المستخدمة في جميع أنحاء العالم
  • UTF-8
    • ترميز أحرف قادر على ترميز كافة الأحرف الممكنة (تسمى نقاط التعليمات البرمجية) في Unicode.
    • وحدة الكود هي 8 بت
    • استخدام واحد إلى أربع وحدات رمز لترميز Unicode
    • 00100100 لـ " $ " (واحد 8 بت)؛ 11000010 10100010 لـ " ¢ " (اثنان 8 بت) ؛ 11100010 10000010 10101100 لـ " " (ثلاثة 8 بت)
  • UTF-16
    • ترميز آخر حرف
    • وحدة الكود هي 16 بت
    • استخدام واحد إلى وحدتين رمز لترميز يونيكود
    • 00000000 00100100 لـ " $ " (واحد 16 بت) ؛ 11011000 01010010 11011111 01100010 لـ " 𤭢 " (اثنان 16 بت)
Question

ما هو أساس يونيكود ولماذا الحاجة إلى UTF-8 أو UTF-16؟ لقد بحثت هذا على Google وبحثت عنه هنا أيضًا ولكن هذا ليس واضحًا بالنسبة لي.

في VSS عند إجراء مقارنة للملفات ، أحيانًا تكون هناك رسالة تقول أن الملفين لهما UTF مختلفان. لماذا تكون هذه القضية؟

يرجى توضيح بعبارات بسيطة.




UTF تقف لتقف على شكل Unicode Transformation Format. بشكل عام في عالم اليوم ، هناك مخطوطات مكتوبة بمئات اللغات الأخرى ، وهي تنسيقات لا يغطيها ASCII الأساسي المستخدم سابقًا. وبالتالي ، جاء UTF إلى الوجود.

يحتوي UTF-8 على إمكانيات تشفير الأحرف ووحدة التعليمة البرمجية الخاصة به 8 بت بينما يكون UTF-16 16 بت.




تشرح هذه المقالة كل التفاصيل http://kunststube.net/encoding/

كتابة العجينة

إذا كتبت إلى مخزن مؤقت 4 بايت ، حرف بترميز UTF8 ، سيبدو شكلك الثنائي كما يلي:

00000000 11100011 10000001 10000010

إذا كتبت إلى مخزن مؤقت 4 بايت ، حرف بترميز UTF16 ، سيبدو شكلك الثنائي كما يلي:

00000000 00000000 00110000 01000010

كما ترى ، بناءً على اللغة التي ستستخدمها في محتواك ، سيؤثر ذلك على ذاكرتك وفقًا لذلك.

على سبيل المثال لهذا الحرف المعين: ترميز UTF16 أكثر كفاءة حيث لدينا 2 بايت احتياطية لاستخدامها في الرمز التالي. ولكن هذا لا يعني أنه يجب عليك استخدام UTF16 للأبجدية اليابانية.

القراءة من العجينة

الآن إذا كنت ترغب في قراءة البايتات المذكورة أعلاه ، يجب أن تعرف ما هو الترميز الذي تمت كتابته إليه وفك ترميزه بشكل صحيح.

على سبيل المثال إذا قمت بفك ترميز هذا: 00000000 11100011 10000001 10000010 إلى ترميز UTF16 ، سوف ينتهي بك الأمر مع لا

ملاحظة: التشفير و Unicode هما شيئان مختلفان. Unicode هو (table) كبير مع كل رمز يتم تعيينه إلى نقطة تعليمة برمجية فريدة. على سبيل المثال ، الحرف has يحتوي على (نقطة رمز) : 30 42 (ست عشري). من ناحية أخرى ، فإن التشفير هو خوارزمية تقوم بتحويل الرموز إلى طريقة أكثر ملاءمة ، عند تخزينها على الأجهزة.

30 42 (hex) - > UTF8 encoding - > E3 81 82 (hex), which is above result in binary.

30 42 (hex) - > UTF16 encoding - > 30 42 (hex), which is above result in binary.




في الأصل ، كان القصد من Unicode أن يكون ترميزًا 16 بتًا ثابت العرض (UCS-2). بنى المتبنون الأوائل لـ Unicode ، مثل Java و Windows NT ، مكتباتهم حول سلاسل 16 بت.

في وقت لاحق ، تم توسيع نطاق Unicode ليشمل الأحرف التاريخية ، والتي تتطلب أكثر من 65.536 نقطة رمز تدعم ترميز 16 بت. للسماح بتمثيل الأحرف الإضافية على الأنظمة الأساسية التي استخدمت UCS-2 ، تم إدخال ترميز UTF-16. ويستخدم "أزواج بديلة" لتمثيل الشخصيات في الطائرات التكميلية.

وفي الوقت نفسه ، كان الكثير من بروتوكولات الشبكات والبرمجيات القديمة تستخدم سلاسل 8 بت. تم إجراء UTF-8 حتى تتمكن هذه الأنظمة من دعم Unicode دون الحاجة إلى استخدام أحرف عريضة. إنه متوافق مع الإصدارات السابقة مع ASCII 7 بت.




Links