ما هو 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 مختلفان. لماذا تكون هذه القضية؟

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




تشرح هذه المقالة كل التفاصيل 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.




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

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




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

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

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