يو تي اف-16

UTF-16 (تنسيق تحويل Unicode 16 بت ) هو ترميز أحرف قادر على ترميز جميع نقاط الشفرة غير البديلة البالغ عددها 1112.064 في Unicode (في الواقع، تم تحديد هذا العدد من نقاط الشفرة بواسطة تصميم UTF-16). يكون الترميز متغير الطول، حيث يتم ترميز نقاط الترميز بواحدة أو وحدتي رمز 16 بت. نشأ UTF-16 من ترميز سابق ذي عرض ثابت 16 بت يُعرف باسم UCS-2 (لمجموعة الأحرف العالمية 2 بايت) بمجرد أن أصبح من الواضح أن هناك حاجة إلى أكثر من 2 16 (65536) نقطة رمز.[1]

يتم استخدام UTF-16 داخليا من قبل أنظمة مثل مايكروسوفت ويندوز، ولغة البرمجة جافا وجافا سكريبت / ECMAScript. وغالبا ما يستخدم أيضا للنص العادي ولملفات البيانات معالجة النصوص على مايكروسوفت ويندوز. ونادرا ما تستخدم للملفات على أنظمة شبيهة يونكس. اعتبارا من مايو 2019، يبدو أن Microsoft قد عكست مسارها وتدعم الآن وتوصي باستخدام UTF-8.

UTF-16 هو ترميز الويب الوحيد غير المتوافق مع ASCII ، ولم يكتسب شعبية على الويب، حيث يتم استخدامه من قبل أقل من 0.005٪ (أقل من 1 مائة من 1 في المئة) من صفحات الويب. UTF-8، على سبيل المقارنة، يستخدم من قبل 97٪ من جميع صفحات الويب. يعتبر الفريق العامل لتكنولوجيا تطبيقات النص التشعبي على الويب (WHATWG) UTF-8 «الترميز الإلزامي لجميع [النص]» وأنه لأسباب أمنية يجب ألا تستخدم تطبيقات المستعرض UTF-16.

تاريخ

في أواخر الثمانينيات، بدأ العمل على تطوير ترميز موحد ل «مجموعة الأحرف العالمية» (UCS) التي من شأنها استبدال الترميزات السابقة الخاصة باللغة بنظام واحد منسق. كان الهدف هو تضمين جميع الشخصيات المطلوبة من معظم لغات العالم، بالإضافة إلى رموز من المجالات التقنية مثل العلوم والرياضيات والموسيقى. كانت الفكرة الأصلية هي استبدال الترميزات النموذجية ذات ال 256 حرفا، والتي تتطلب بايت واحد لكل حرف، وترميز باستخدام قيم 65536 (216)، والتي تتطلب بايتين (16 بت) لكل حرف.

وعملت مجموعتان في هذا الشأن بالتوازي، وهما ISO/IEC JTC 1/SC 2 واتحاد يونيكود، وتمثل الأخيرة في معظمها الشركات المصنعة لمعدات الحوسبة. حاولت المجموعتان مزامنة تعيينات الأحرف الخاصة بهم بحيث تكون الترميزات النامية متوافقة بشكل متبادل. وكان الترميز 2 بايت في وقت مبكر يسمى أصلا «يونيكود»، ولكن الآن يسمى "UCS-2".

عندما أصبح من الواضح بشكل متزايد أن 2 16 حرفًا لن تكون كافية، قدمت IEEE مساحة أكبر تبلغ 31 بت وترميزًا (UCS-4) يتطلب 4 بايت لكل حرف. تمت مقاومة هذا من قبل Unicode Consortium ، وذلك لأن 4 بايت لكل حرف يهدر الكثير من الذاكرة ومساحة القرص، ولأن بعض الشركات المصنعة قد استثمرت بالفعل بشكل كبير في تقنية 2 بايت لكل حرف. تم تطوير مخطط ترميز UTF-16 كحل وسط وتم تقديمه مع الإصدار 2.0 من معيار Unicode في يوليو 1996.[2] تم تحديده بالكامل في RFC 2781، الذي نشره IETF في عام 2000.[3][4]

في ترميز UTF-16، يتم ترميز نقاط التعليمات البرمجية أقل من 216 مع وحدة رمز 16 بت واحدة تساوي القيمة الرقمية لنقطة التعليمات البرمجية، كما هو الحال في UCS-2 القديمة. يتم ترميز نقاط التعليمات البرمجية الأحدث أكبر من أو يساوي 216 بواسطة قيمة مركبة باستخدام وحدتي رمز 16 بت. يتم اختيار هذه الوحدات رمز 16 بت اثنين من النطاق 0xD800-0xDFFF (التي لم يتم تعيينها مسبقا إلى أحرف). لا يتم استخدام القيم الموجودة في هذا النطاق كأحرف، ولا يوفر UTF-16 أية طريقة قانونية لرمزها كنقاط رمز فردية. وبالتالي يتكون دفق UTF-16 من نقاط رمز 16 بت واحدة خارج هذا النطاق (لنقاط التعليمات البرمجية في BMP) وأزواج من قيم 16 بت داخل هذا النطاق (لنقاط التعليمات البرمجية أعلى BMP).

تم تحديد UTF-16 في أحدث إصدارات كل من المعيار الدولي ISO / IEC 10646 ومعيار Unicode. «يجب اعتبار UCS-2 الآن قديمًا. لم يعد يشير إلى نموذج تشفير في 10646 أو معيار Unicode.» [5] لا توجد خطط اعتبارًا من 2020 لتوسيع UTF-16 لدعم عدد أكبر من نقاط الكود أو استبدال نقاط الكود بالبدائل، لأن هذا من شأنه أن ينتهك سياسة استقرار Unicode فيما يتعلق بالفئة العامة أو نقاط الرمز البديلة.[6] (أي مخطط يظل رمز التزامن الذاتي يتطلب تخصيص نقطة شفرة BMP واحدة على الأقل لبدء تسلسل. تغيير الغرض من نقطة الرمز غير مسموح به).

وصف

يتم ترميز كل نقطة رمز Unicode إما كوحدات رمز 16 بت واحد أو اثنين. كيف يتم تخزين هذه الرموز 16 بت كما بايت ثم يعتمد على 'endianness' من الملف النصي أو بروتوكول الاتصال.

قد تحتاج «حرف» من عدد قليل من بايت اثنين إلى أربعة عشر بايت أو أكثر حتى يمكن تسجيلها. على سبيل المثال حرف علامة الرموز التعبيرية يأخذ 8 بايت، لأنه «شيدت من زوج من القيم التحجيمية يونيكود» (وتلك القيم هي خارج BMP وتتطلب 4 بايت لكل منهما).

U + 0000 إلى U + D7FF و U + E000 إلى U + FFFF

كل من UTF-16 و UCS-2 ترميز نقاط التعليمات البرمجية في هذا النطاق كوحدات رمز 16 بت واحدة التي تساوي عدديا إلى نقاط التعليمات البرمجية المقابلة. نقاط التعليمات البرمجية هذه في المستوى متعدد اللغات الأساسية (BMP) هي نقاط التعليمات البرمجية الوحيدة التي يمكن تمثيلها في UCS-2. [استشهاد مطلوب] اعتبارا من Unicode 9.0، تقع بعض النصوص الحديثة غير اللاتينية الآسيوية والشرق أوسطية والأفريقية خارج هذا النطاق، كما تفعل معظم أحرف الرموز التعبيرية.

نقاط الرمز من U + 010000 إلى U + 10FFFF

يتم ترميز نقاط التعليمات البرمجية من المستويات الأخرى (تسمى الطائرات التكميلية) كوحدتي رمز 16 بت تسمى زوج بديل، بواسطة النظام التالي:

وحدة فك ترميز UTF-16
Low
High
DC00 DC01    . . .    DFFF
D800 010000 010001 . . . 0103FF
D801 010400 010401 . . . 0107FF
  
دبف 10FC00 10FC01 . . . 10FFFF
  • يتم طرح 0x10000 من نقطة الرمز (U) ، وترك رقم 20 بت (U ') في نطاق الرقم السداسي 0x00000–0xFFFFF. ملاحظة لهذه الأغراض، تم تعريف U على أنه لا يزيد عن 0x10FFFF.
  • تتم إضافة البتات العشر العالية (في النطاق 0x000–0x3FF) إلى 0xD800 لإعطاء أول وحدة رمز ذات 16 بتة أو مركب عالي (W1) ، والذي سيكون في النطاق 0xD800–0xDBFF .
  • تتم إضافة البتات العشر المنخفضة (أيضًا في النطاق 0x000–0x3FF) إلى 0xDC00 لإعطاء وحدة الرمز 16 بت الثانية أو البديل المنخفض (W2) ، والذي سيكون في النطاق 0xDC00–0xDFFF .

يتضح بصريًا، أن توزيع U ' بين W1 و W2 يبدو كما يلي:[7]

ومن المعروف أيضا بديل عالية وبديل منخفض باسم «الرائدة» و «زائدة» بدائل، على التوالي، مماثلة لبايت الرائدة والمتخلفة من UTF-8.

نظرا لأن نطاقات البدائل العالية (0xD800-0xDBFF) والبدائل المنخفضة (0xDC00-0xDFFF) وأحرف BMP الصالحة (0x0000-0xD7FF 0xE000-0xFFFF) مفككة، فليس من الممكن أن يتطابق البديل مع حرف BMP ، أو أن تبدو وحدتا التعليمات البرمجية المجاورتان كزوج بديل قانوني. هذا يبسط عمليات البحث إلى حد كبير. وهذا يعني أيضا أن UTF-16 هو المزامنة الذاتية على كلمات 16 بت: ما إذا كان يمكن تحديد وحدة التعليمات البرمجية يبدأ حرف دون فحص وحدات التعليمات البرمجية السابقة (أي يمكن تحديد نوع وحدة التعليمات البرمجية من خلال نطاقات القيم التي يقع). يشارك UTF-8 هذه المزايا، ولكن العديد من أنظمة الترميز متعددة البايت السابقة (مثل Shift JIS والترميزات الآسيوية متعددة البايت الأخرى) لم تسمح بالبحث الواضح ويمكن مزامنتها فقط عن طريق إعادة التحليل من بداية السلسلة (UTF-16 لا تتم المزامنة الذاتية إذا تم فقدان بايت واحد أو إذا كان اجتياز يبدأ عند بايت عشوائي).

نظرا لأن الأحرف الأكثر استخداما كلها في BMP ، فغالبا ما لا يتم اختبار التعامل مع الأزواج البديلة بدقة. وهذا يؤدي إلى الأخطاء المستمرة والثغرات الأمنية المحتملة، حتى في برامج التطبيقات الشائعة والمراجعة جيدا (على سبيل المثال CVE-2008-2938، CVE-2012-2135).

تحتوي الطائرات التكميلية على رموز تعبيرية ونصوص تاريخية ورموز أقل استخداما وideographs صينية أقل استخداما وما إلى ذلك. منذ ترميز الطائرات التكميلية يحتوي على 20 بت كبيرة (10 من 16 بت في كل من بدائل عالية ومنخفضة)، يمكن ترميز 220 نقطة رمز، وتنقسم إلى 16 طائرة من 216 نقطة رمز لكل منهما. بما في ذلك الطائرة الأساسية متعددة اللغات التي يتم التعامل معها بشكل منفصل، هناك ما مجموعه 17 طائرة.

U + D800 إلى U + DFFF

يحتفظ معيار Unicode بشكل دائم بقيم نقطة التعليمات البرمجية هذه لترميز UTF-16 للبدائل العالية والمنخفضة، ولن يتم تعيين حرف لها أبدا، لذا يجب ألا يكون هناك سبب لترميزها. معيار Unicode الرسمي يقول أنه لا توجد نماذج UTF ، بما في ذلك UTF-16، يمكن ترميز نقاط التعليمات البرمجية هذه. [استشهاد مطلوب]

ومع ذلك، UCS-2، UTF-8، و UTF-32 يمكن ترميز هذه النقاط البرمجية بطرق تافهة وواضحة، وكمية كبيرة من البرامج يفعل ذلك، [الاقتباس اللازمة] على الرغم من أن المعيار ينص على أن مثل هذه الترتيبات ينبغي أن تعامل على أنها أخطاء الترميز. [استشهاد مطلوب]

من الممكن بشكل لا لبس فيه ترميز بديل غير مزدوج (نقطة رمز بديلة عالية لا تتبعها نقطة منخفضة، أو نقطة منخفضة لا تسبقها نقطة عالية) بتنسيق UTF-16 باستخدام وحدة رمز تساوي نقطة الرمز. النتيجة ليست UTF-16 صالحة، ولكن غالبية تطبيقات UTF-16 وفك التشفير تفعل ذلك عند الترجمة بين الترميزات.[بحاجة لمصدر] يسمح Windows بالبدائل غير المزدوجة في أسماء الملفات وأماكن أخرى،[بحاجة لمصدر] مما يعني عمومًا أنه يجب دعمها بواسطة البرامج على الرغم من استبعادها من معيار Unicode.

أمثلة

لتشفير U + 10437 (𐐷) إلى UTF-16:

  • اطرح 0x10000 من نقطة الرمز، تاركًا 0x0437.
  • بالنسبة إلى البديل العالي، انقل إلى اليمين بمقدار 10 (قسّمه على 0x400)، ثم أضف 0xD800 ، مما ينتج عنه 0x0001 + 0xD800 = 0xD801.
  • بالنسبة للبديل المنخفض، خذ البتات العشر المنخفضة (باقي القسمة على 0x400)، ثم أضف 0xDC00 ، مما أدى إلى 0x0037 + 0xDC00 = 0xDC37.
  • خذ البديل المرتفع (0xD801) واطرح 0xD800 ، ثم اضرب في 0x400 ، مما ينتج عنه 0x0001 × 0x400 = 0x0400.
  • خذ البديل المنخفض (0xDC37) واطرح 0xDC00 ، مما أدى إلى 0x37.
  • أضف هاتين النتيجتين معًا (0x0437)، وأخيرًا أضف 0x10000 للحصول على نقطة رمز UTF-32 النهائية، 0x10437.

يلخص الجدول التالي هذا التحويل بالإضافة إلى غيره. تشير الألوان إلى كيفية توزيع وحدات البت من نقطة الرمز بين وحدات بايت UTF-16. يتم عرض البتات الإضافية التي تمت إضافتها بواسطة عملية ترميز UTF-16 باللون الأسود.

حرف نقطة الرمز الثنائي ثنائي UTF-16 UTF-16 عرافة



</br> وحدات الكود
UTF-16BE



</br> عرافة بايت
UTF-16 جنيه



</br> عرافة بايت
$ U+0024 0000 0000 0010 0100 0000 0000 0010 0100 0024 00 24 24 00
U+20AC 0010 0000 1010 1100 0010 0000 1010 1100 20AC 20 AC AC 20
𐐷 U+10437 0001 0000 01 00 0011 0111 1101 10 00 0000 0001 1101 11 00 0011 0111 D801 DC37 D8 01 DC 37 01 D8 37 DC
𤭢 U+24B62 0010 0100 10 11 0110 0010 1101 10 00 0101 0010 1101 11 11 0110 0010 D852 DF62 D8 52 DF 62 52 D8 62 DF

مخططات ترميز ترتيب البايت

ينتج UTF-16 و UCS-2 سلسلة من وحدات كود 16 بت. نظرًا لأن معظم بروتوكولات الاتصال والتخزين محددة للبايت، وبالتالي تأخذ كل وحدة بايت 8 بت، قد يعتمد ترتيب البايت على endianness (ترتيب البايت) في بنية الكمبيوتر.

للمساعدة في التعرف على ترتيب البايت لوحدات الكود، يسمح UTF-16 بعلامة ترتيب البايت (BOM)، وهي نقطة رمز بالقيمة U + FEFF ، لتسبق أول قيمة مشفرة فعلية.[nb 1] (U + FEFF هو حرف ZWNBSP / ZWNBSP غير المرئي غير المرئي غير القابل للكسر.) [nb 2] إذا تطابق معمارية مفكك التشفير مع معمارية المشفر، يكتشف مفكك الشفرة قيمة 0xFEFF ، لكن مفكك الشفرة المقابل يفسر BOM على أنه القيمة غير المميزة U + FFFE المحجوزة لهذا الغرض. توفر هذه النتيجة غير الصحيحة تلميحًا لإجراء تبديل البايت للقيم المتبقية.

إذا كان BOM مفقودًا، يوصي RFC 2781 [nb 3] بافتراض الترميز الكبير. في الممارسة العملية، نظرًا لأن Windows يستخدم ترتيبًا محدودًا بشكل افتراضي، فإن العديد من التطبيقات تفترض القليل من الترميز الداخلي. كما يمكن الاعتماد عليه في اكتشاف الانحراف من خلال البحث عن بايتات فارغة، على افتراض أن الأحرف الأقل من U + 0100 شائعة جدًا. إذا كان عدد وحدات البايت (بدءًا من 0) فارغًا، فسيكون هذا عددًا كبيرًا من وحدات البايت.

يسمح المعيار أيضًا بتحديد ترتيب البايت بشكل صريح من خلال تحديد UTF-16BE أو UTF-16LE كنوع الترميز. عندما يتم تحديد ترتيب البايت بشكل صريح بهذه الطريقة، لا يُفترض على وجه التحديد أن يتم إضافة قائمة مكونات الصنف إلى النص، ويجب التعامل مع U + FEFF في البداية كحرف ZWNBSP. تتجاهل معظم التطبيقات قائمة مكونات الصنف في جميع الحالات على الرغم من هذه القاعدة.

بالنسبة لبروتوكولات الإنترنت ، وافقت IANA على "UTF-16" و "UTF-16BE" و "UTF-16LE" كأسماء لهذه الترميزات (الأسماء غير حساسة لحالة الأحرف). قد تكون الأسماء المستعارة UTF_16 أو UTF16 ذات مغزى في بعض لغات البرمجة أو تطبيقات البرامج، ولكنها ليست أسماء قياسية في بروتوكولات الإنترنت.

استعمال

يستخدم UTF-16 للنص في API نظام التشغيل لجميع الإصدارات المعتمدة حاليا من مايكروسوفت ويندوز (بما في ذلك على الأقل كل منذ ويندوز CE/2000/XP/2003/Vista/7) بما في ذلك ويندوز 10. منذ بناء 17035 من الداخل وتحديث أبريل 2018، أضافت دعم UTF-8 واعتبارا من مايو 2019 توصي Microsoft باستخدام البرنامج بدلا من UTF-16. تدعم أنظمة Windows NT الأقدم (قبل Windows 2000) فقط UCS-2. في نظام التشغيل Windows XP، يتم تضمين أي نقطة التعليمات البرمجية أعلاه U + FFFF في أي خط تسليمها مع Windows للغات الأوروبية. تميل الملفات وبيانات الشبكة إلى أن تكون مزيجا من ترميزات UTF-16 و UTF-8 وTete القديمة.

يعين نظام التشغيل IBM i CCSID (صفحة التعليمات البرمجية) 13488 لترميز UCS-2 و CCSID 1200 لترميز UTF-16، على الرغم من أن النظام يعاملهما على حد سواء ك UTF-16.

يستخدم UTF-16 من قبل أنظمة التشغيل كوالكوم BREW; بيئات .NET; ومجموعة أدوات القطعة الرسومية عبر منصة Qt.

سيمبيان OS المستخدمة في الهواتف نوكيا S60 وسوني إريكسون UIQ الهواتف يستخدم UCS-2. فون الهواتف استخدام UTF - 16 لخدمة الرسائل القصيرة بدلا من UCS - 2 الموصوفة في 3GPP TS 23.038 (جي إس إم) والمعايير IS - 637 (CDMA).

يقوم نظام ملفات Joliet، المستخدم في وسائط الأقراص المضغوطة، بترميز أسماء الملفات باستخدام UCS-2BE (ما يصل إلى أربعة وستين حرفا من Unicode لكل اسم ملف).

تستخدم بيئة لغة Python رسميا UCS-2 داخليا فقط منذ الإصدار 2.0، ولكن وحدة فك ترميز UTF-8 إلى "Unicode" تنتج UTF-16 الصحيح. منذ بيثون 2.2، «واسعة» يبني يونيكود معتمدة والتي تستخدم UTF - 32 بدلا من ذلك؛ وتستخدم هذه في المقام الأول على لينكس. بيثون 3.3 لم يعد يستخدم من أي وقت مضى UTF-16، بدلا من ذلك يتم اختيار الترميز الذي يعطي التمثيل الأكثر إحكاما لسلسلة معينة من ASCII/Latin-1، UCS-2، وUTF-32.

جافا تستخدم أصلا UCS -2، وأضاف UTF - 16 دعم الأحرف التكميلية في J2SE 5.0.

قد يستخدم جافا سكريبت UCS-2 أو UTF-16. اعتبارا من ES2015، تمت إضافة أساليب السلسلة وعلامات التعبير العادية إلى اللغة التي تسمح بمعالجة السلاسل من منظور ترميز الملحد.

في العديد من اللغات، تحتاج سلاسل quoted بناء جملة جديد ل quoting غير BMP أحرف، كما C-style "uXXXX" بناء الجملة يحدد نفسه بوضوح إلى 4 أرقام سداسية عشرية. توضح الأمثلة التالية بناء الجملة للحرف غير BMP "𝄞" (U +1D11E، MUSICAL SYMBOL G CLEF). الأكثر شيوعا (المستخدمة من قبل C + + ، C # ، D ، والعديد من اللغات الأخرى) هو استخدام الحالة العليا 'U' مع 8 أرقام سداسية مثل " D11E". في تعبيرات Java 7 العادية وحدة العناية المركزة وبيرل، يجب استخدام بناء الجملة "x{1D11E}"; وبالمثل، في ECMAScript 2015 (جافا سكريبت)، تنسيق الهروب هو "u{1D11E}". في العديد من الحالات الأخرى (مثل Java خارج التعبيرات العادية)، فإن الطريقة الوحيدة للحصول على أحرف غير BMP هي إدخال النصفين البديلين بشكل فردي، على سبيل المثال: "𝄞" ل U +1D11E.

تطبيقات السلسلة استنادا إلى UTF-16 عادة تعريف أطوال السلسلة والسماح الفهرسة من حيث وحدات التعليمات البرمجية 16 بت هذه، وليس من حيث نقاط التعليمات البرمجية. لا تتوافق نقاط التعليمات البرمجية أو وحدات التعليمات البرمجية مع أي شيء قد يتعرف عليه المستخدم النهائي ك «حرف»; الأشياء التي يحددها المستخدمون كأحرف قد تتكون بشكل عام من نقطة رمز أساسي وتسلسل من الجمع بين الأحرف (أو قد تكون سلسلة من نقاط التعليمات البرمجية من نوع آخر، على سبيل المثال Hangul conjoining jamos) - يشير Unicode إلى هذا البناء على أنه كتلة grapheme - وعلى هذا النحو، يجب على التطبيقات التي تتعامل مع سلاسل Unicode ، مهما كان الترميز، التعامل مع حقيقة أن هذا يحد من قدرتها على تقسيم السلاسل بشكل تعسفي ودمجها.

ويدعم UCS -2 أيضا من قبل لغة PHP و MySQL.

سويفت، الإصدار 5، لغة التطبيق المفضلة لشركة آبل، تحولت من UTF-16 إلى UTF-8 كترميز المفضل.

انظر أيضًا

  • مقارنة بين ترميزات يونيكود
  • الطائرة (يونيكود)
  • UTF-8
  • UTF-32

ملاحظات

  1. UTF-8 encoding produces byte values strictly less than 0xFE, so either byte in the BOM sequence also identifies the encoding as UTF-16 (assuming that UTF-32 is not expected).
  2. Use of U+FEFF as the character ZWNBSP instead of as a BOM has been deprecated in favor of U+2060 (WORD JOINER); see Byte Order Mark (BOM) FAQ at unicode.org. But if an application interprets an initial BOM as a character, the ZWNBSP character is invisible, so the impact is minimal. نسخة محفوظة 2021-05-02 على موقع واي باك مشين.
  3. RFC 2781 section 4.3 says that if there is no BOM, "the text SHOULD be interpreted as being big-endian." According to section 1.2, the meaning of the term "SHOULD" is governed by RFC 2119. In that document, section 3 says "... there may exist valid reasons in particular circumstances to ignore a particular item, but the full implications must be understood and carefully weighed before choosing a different course".

 

مراجع

  1. "What is UTF-16?"، The Unicode Consortium، Unicode, Inc.، مؤرشف من الأصل في 02 مايو 2021، اطلع عليه بتاريخ 29 مارس 2018.
  2. "Questions about encoding forms"، مؤرشف من الأصل في 02 مايو 2021، اطلع عليه بتاريخ 12 نوفمبر 2010.
  3. ISO/IEC 10646:2014 "Information technology – Universal Coded Character Set (UCS)" sections 9 and 10.
  4. The Unicode Standard version 7.0 (2014) section 2.5. نسخة محفوظة 2020-12-02 على موقع واي باك مشين.
  5. "The Unicode® Standard Version 10.0 – Core Specification. Appendix C Relationship to ISO/IEC 10646" (PDF)، Unicode Consortium، مؤرشف من الأصل (PDF) في 24 مارس 2018. section C.2 page 913 (pdf page 10)
  6. "Unicode Character Encoding Stability Policies"، unicode.org، مؤرشف من الأصل في 13 أبريل 2021.
  7. Yergeau, Francois؛ Hoffman, Paul، "UTF-16, an encoding of ISO 10646"، tools.ietf.org (باللغة الإنجليزية)، مؤرشف من الأصل في 19 أبريل 2021، اطلع عليه بتاريخ 18 يونيو 2019.

 

روابط خارجية

  • بوابة كتابة
  • بوابة علم الحاسوب
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.