UTF-8 مقدمة
UTF-8 هو الهدف Unicode طول متغير ترميز الأحرف , رمز الأمم .
UTF-8 مستعمل 1 إلى 6 بايت ترميز UNICODE حرف .
UTF-8 قواعد الترميز
إذا كان هناك واحد فقط بايت ، أعلى بت ثنائي 0;
إذا كان متعدد البايت , البايت الأول يبدأ من أعلى , بت ثنائي مستمر 1 يحدد عدد البايتات المشفرة , بقية بايت 10 بداية .
Unicode/UCS-4 | bit عدد | UTF-8 | byte عدد | ملاحظات |
0000~ 007F | 0~7 | 0XXX XXXX | 1 | |
0080~ 07FF | 8~11 | 110X XXXX 10XX XXXX | 2 | |
0800~ FFFF | 12~16 | 1110XXXX 10XX XXXX 10XX XXXX | 3 | نطاق التعريف الأساسي :0~FFFF |
1 0000~ 1F FFFF | 17~21 | 1111 0XXX 10XX XXXX 10XX XXXX 10XX XXXX | 4 | Unicode6.1 تحديد نطاق :0~10 FFFF |
20 0000~ 3FF FFFF | 22~26 | 1111 10XX 10XX XXXX 10XX XXXX 10XX XXXX 10XX XXXX | 5 | إيضاحات : هذا غير unicode ترميز مجموعة , انتماء UCS-4 ترميز في وقت مبكر من المواصفات UTF-8 يمكن الوصول إليها 6 تسلسل البايت , يمكن أن تغطي 31 بت ( الحد الأصلي من مجموعة الأحرف العالمية ). ومع ذلك ,2003 سنة 11 شهر . UTF-8 يكون RFC 3629 إعادة توحيد , فقط استخدام الأصلي Unicode تعريف المنطقة ,U+0000 إلى U+10FFFF. وفقا للمواصفات , هذه القيم البايت لن تظهر في UTF-8 تسلسل |
400 0000~ 7FFF FFFF | 27~31 | 1111 110X 10XX XXXX 10XX XXXX 10XX XXXX 10XX XXXX 10XX XXXX | 6 |
UTF-8 ميزة
UTF-8 الترميز يمكن قراءة وكتابة بسرعة من خلال قناع بت و عملية التحول . سلسلة المقارنة strcmp() و . wcscmp() نفس النتيجة , مما يجعل الفرز أسهل . البايت FF و . FE في . UTF-8 الترميز لن تظهر , حتى أنها يمكن أن تستخدم لإظهار UTF-16 أو . UTF-32 نص . ( انظر BOM) UTF-8 ترتيب البايت . ترتيب البايت هو نفسه في جميع النظم , لذلك لا تحتاج في الواقع BOM.
UTF-8 عيب
لا يمكنك أن تبدأ UNICODE تحديد عدد الأحرف UTF-8 بايت من النص , لأن UTF-8 طول متغير الترميز 2 بايت ترميز تلك مع التمديد ASCII مجموعة الأحرف 1 بايت حرف ISO Latin-1 نعم . UNICODE مجموعة فرعية , ولكن لا UTF-8 مجموعة فرعية 8 بت حرف UTF-8 سوف يتم ترميز email بوابة الترشيح , لأن internet المعلومات التي صممت أصلا 7 بت ASCII رمز . وهكذا ولدت UTF-7 ترميز . UTF-8 استخدام القيم في التمثيل 100xxxxx احتمال تجاوز 50%, تنفيذ القائمة مثل ISO 2022, 4873, 6429, و . 8859 نظم , سوف أعتبر خطأ C1 رمز التحكم . وهكذا ولدت UTF-7.5 ترميز .