وهنا قائمة محدثة من "الأشياء الجيدة" يونيكود أروع ، وكذلك الحزم والموارديونيكود رائع! قبل ظهوره ، كان التواصل الدولي مرهقًا: حدد كل منهم مجموعة الأحرف الموسعة المنفصلة الخاصة به في النصف العلوي من ASCII (ما يسمى صفحات الرموز). هذا خلق الصراع. فقط فكر في أن الألمان اضطروا للتفاوض مع الكوريين ، حيث توجد صفحة الكود. لحسن الحظ ، ظهر يونيكود وقدم معيار مشترك. يغطي Unicode 8.0 أكثر من 120،000 حرف من أكثر من 129 نصًا. كلاهما قديما وحديثا ، وما زال غير مشفر. يدعم Unicode النص من اليسار إلى اليمين ومن اليمين إلى اليسار ، ويغطي الحروف ويتضمن مجموعة متنوعة من الرموز الثقافية والسياسية والدينية والرموز التعبيرية. يونيكود هو الإنسان بشكل مثير للدهشة ، ويتم التقليل من قدراتها إلى حد كبير.
محتوى
مقدمة موجزة
ما هي الشخصيات المدرجة في يونيكود قياسي؟
يعرّف معيار Unicode رموز الأحرف في اللغات الحديثة الرئيسية. هذه هي النصوص الأبجدية الأوروبية ، والنصوص الشرق أوسطية من اليمين إلى اليسار والعديد من النصوص الآسيوية.
يحتوي المعيار أيضًا على علامات الترقيم ، علامات التشكيل ، الرموز الرياضية ، الرموز الفنية ، الأسهم ، dingbats ، الرموز التعبيرية ، إلخ. وهو يوفر رموزًا لأدوات التشكيل التي تغير علامات الأحرف ، مثل علامات التلدة (~). يتم استخدامها في تركيبة مع تلك الأساسية لتمثيل الأحرف المحركة (على سبيل المثال ، ñ). بشكل عام ، يوفر Unicode الإصدار 9.0 رموزًا لـ 128،172 حرفًا من الحروف الهجائية العالمية ومجموعات ideogram ومجموعات الحروف.
يتم وضع معظم الأحرف الشائعة في أول نقاط رمز 64 كيلو بايت ، وهي مساحة من مساحة الرمز تسمى المستوى الرئيسي متعدد اللغات ، أو BMP لفترة قصيرة. هناك ستة عشر طائرة إضافية متاحة لترميز الأحرف الأخرى ، مع أكثر من 850،000 نقطة كود غير مستخدمة. قد تكون في متناول اليد لإضافة أحرف جديدة إلى الإصدارات المستقبلية من المعيار.
يحتفظ Unicode القياسي أيضًا بنقاط الكود للاستخدام الخاص. يمكن للبائعين أو المستخدمين النهائيين تعيينهم في أنظمتهم الخاصة لشخصياتهم أو استخدامها مع خطوط متخصصة. يحتوي BMP على 6400 نقطة رمز للاستخدام الخاص ونقاط 131 068 إضافية للرمز للاستخدام الخاص ، إذا كان 6400 لا يكفي لتطبيقات محددة.
ترميزات أحرف Unicode
لا تحدد معايير ترميز الأحرف فقط هوية كل حرف وقيمته الرقمية أو نقطة الرمز ، ولكن أيضًا كيفية تمثيل هذه القيمة بالبت.
يعرّف معيار Unicode ثلاثة أشكال من الترميز تسمح بنقل البيانات نفسها: بايت ، كلمة ، وكلمة مزدوجة (أي ، 8 ، 16 ، أو 32 بت لكل وحدة كود). ترميز النماذج الثلاثة نفس مجموعة الأحرف الشائعة ويمكن تحويلها بفعالية إلى بعضها البعض دون فقد البيانات. يوافق Unicode Consortium تمامًا على استخدام أي من نماذج الترميز هذه كطريقة متفق عليها لتنفيذ Unicode Standard.
UTF-8 شائع بالنسبة إلى HTML والبروتوكولات المشابهة. UTF-8 هو وسيلة لتحويل جميع أحرف Unicode إلى ترميز بطول البايت المتغير. ميزته هي أن أحرف Unicode المطابقة لمجموعة ASCII المألوفة لها نفس قيم البايت مثل ASCII ، ويمكن استخدام أحرف Unicode المحولة إلى UTF-8 مع الكثير من البرامج الموجودة دون تعديلات البرامج الرئيسية.
UTF-16 شائع في العديد من البيئات حيث من الضروري موازنة الوصول الفعال إلى الأحرف مع التخزين الاقتصادي. إنه مضغوط تمامًا ، ويتم وضع جميع الأحرف المستخدمة بشكل متكرر في مقطع شفرة 16 بت واحد ، بينما تتوفر جميع الأحرف الأخرى من خلال أزواج من كتل التعليمات البرمجية 16 بت.
يعد UTF-32 مفيدًا حيث لا يمثل مقدار الذاكرة مصدر قلق ، ولكنه يتطلب الوصول إلى الأحرف في رمز واحد ثابت العرض. هنا ، يتم ترميز كل حرف Unicode في كتلة رمز 32 بت واحد.
لا تتطلب أشكال الترميز الثلاثة أكثر من 4 بايت (أو 32 بت) لكل حرف.
نتحدث عن الأرقام
تنقسم مجموعة أحرف Unicode إلى 17 مقطعًا رئيسيًا (طائرات) ، وهي مقسمة إلى كتل. في كل مستوى ، يوجد مكان لـ 65 536 (2
16 ) نقطة رمز ، مما ينشئ إجمالي 111112 نقطة رمز. يوجد "طائرتان للاستخدام الخاص" (رقم 16 ورقم 17) مخصصة للاستخدام حسب تقدير الشركات / المستخدمين. لديهم 131،072 نقطة رمز.
تسمى الطائرة الأولى بالطائرة الرئيسية متعددة اللغات أو BMP. يحتوي على نقاط رمز من U + 0000 إلى U + FFFF ، أي الأحرف الأكثر استخدامًا. تسمى الطائرات الستة عشر المتبقية (U + 010000 → U + 10FFFF) إضافية أو نجمي.
أزواج بديلة UTF-16
يمكن تشفير الرموز خارج المستوى الرئيسي ، مثل tetragrammaton التي تعني الوسط (U + 1D306) ، في UTF-16 بوحدتي رمز 16 بت فقط: 0xD834 0xDF06. وهذا ما يسمى زوج بديل. يرجى ملاحظة أن الزوج البديل يمثل شخصية واحدة فقط.
تكون الوحدة البرمجية الأولى لزوج بديل دائمًا في النطاق من 0xD800 إلى 0xDBFF وتسمى الجزء العلوي من الزوج.
الوحدة البرمجية الثانية للزوج البديل تكون دائمًا في النطاق من 0xDC00 إلى 0xDFFF وتسمى أسفل الزوج.
ماتياس بينينس
زوج بديل: تمثيل لرمز تجريدي واحد ، يتألف من تسلسل من وحدتي كود 16 بت ، حيث تكون القيمة الأولى للزوج هي وحدة كود بديل علوي والثاني هو وحدة كود بديلة أقل. تستخدم الأزواج البديلة فقط في UTF-16.
يونيكود 8.0 الفصل 3.8 - بدائل
حساب أزواج بديلة
يجب ترميز حرف Unicode "Pile of shit" (U + 1F4A9) في UTF-16 كزوج بديل ، أي بديلين. لتحويل أي نقطة رمز إلى زوج بديل ، استخدم هذه الخوارزمية (في JavaScript). ضع في اعتبارك أننا نستخدم الرموز السداسية عشرية.
var High_Surrogate = function(Code_Point){ return Math.floor((Code_Point - 0x10000) / 0x400) + 0xD800 }; var Low_Surrogate = function(Code_Point){ return (Code_Point - 0x10000) % 0x400 + 0xDC00 };

التكوين والتحلل
يتضمن Unicode آلية لتغيير شكل حرف ، مما يمتد إلى حد كبير مجموعة الحروف الرسومية المدعومة. وهذا ينطبق على علامات التشكيل المدمجة. يتم إدراجها بعد الشخصية الرئيسية. يمكن تطبيق علامات التشكيل المتعددة على نفس العلامة. يحتوي Unicode أيضًا على إصدارات سابقة التجميع لمعظم هذه المجموعات للاستخدام العادي.
يمكن أيضًا تمثيل بعض تسلسل الأحرف كحرف واحد يسمى حرفًا مركبًا مسبقًا ، ويعرف أيضًا باسم الحرف المركب. على سبيل المثال ، يمكن تشفير الحرف [ü] كنقطة الشفرة الوحيدة U + 00FC أو كحرف أساسي U + 0075 (u) ، متبوعًا بالحرف غير المستقل U + 0308 (¨). يقوم معيار Unicode بتشفير الأحرف المركبة للتوافق مع المعايير المعمول بها ، مثل Latin 1 ، والذي يتضمن العديد من الأحرف المركبة ، مثل [ü] و [ñ].
يمكن توسيع الأحرف المركبة للتناسق أو التحليل. على سبيل المثال ، عند التصنيف أبجديًا ، يمكن فك الرمز [ü] إلى [u] متبوعًا بالرمز غير المستقل [¨]. بعد هذا التحلل ، تصبح الخوارزمية أسهل في العمل مع سلسلة من الأحرف. هذا يجعل من السهل الفرز باللغات التي لا تؤثر فيها معدِّلات الأحرف على الترتيب الأبجدي. يعين Unicode القياسي
ترتيب التحلل لجميع الأحرف المركبة. كما يحدد أشكال التطبيع لتوفير تمثيلات فريدة من الأحرف.
يونيكود الخرافات
من شرائح عرض مارك ديفيس "أساطير يونيكود" .- Unicode هو رمز 16 بت فقط . - يعتقد بعض الأشخاص عن طريق الخطأ أن Unicode هو مجرد رمز من 16 بت ، حيث يشغل كل حرف 16 بت ، وبالتالي هناك 65.536 حرفًا ممكنًا. في الواقع ، هذا ليس صحيحا تماما. هذه هي أسطورة يونيكود الأكثر شيوعًا ، لذلك إذا كنت تعتقد ذلك أيضًا من قبل ، فلا تثبط عزمك.
- يمكنك أن تأخذ أي نقطة كود غير مستخدمة لاحتياجاتك . - كلا. يوما ما سيتم استبدال هذا المكان برمز آخر. بدلاً من ذلك ، استخدم الطائرات للاستخدام الخاص أو المساحات التي لا تحتوي على أحرف في كل مستوى حيث لن يكون هناك أحرف وفقًا للمعايير.
- تمثل كل نقطة رمز Unicode حرفًا . - كلا. هناك العديد من النقاط بدون أحرف (FFFE ، FFFF ، 1FFFE ، وما إلى ذلك). بالإضافة إلى ذلك ، نقاط رمز بديلة ونقاط رمز خاصة وغير مستعملة ، بالإضافة إلى "أحرف" التحكم / التنسيق (RLM ، ZWNJ ، إلخ.)
- يونيكود ينفد من الفضاء . - إذا تم ملؤها خطيا ، فإنه سينتهي في عام 2140. لكن المكان لا يملأ خطياً. الخطط المستقبلية انظر هنا .
- تتم مطابقة جميع الشخصيات من شخص إلى آخر . - كلا. الخيارات هي:
- واحد للكثيرين: (β → SS)
- بالنظر إلى السياق: (... Σ ← → ... ς وفي الوقت نفسه ... ΣΤ ... ← → ... στ ...)
- بناءً على الإعدادات المحلية: (I ← → ı وفي الوقت نفسه ، ← ← i)
يونيكود ترميزات التطبيق
شفرة المصدر
قائمة الشخصيات المدهشة.
يمكن أن تتسبب مشاركة مستند في التحرير بسرعة إلى معركة راب مكتوبة ، يشنها ترتيب مربك بشكل متزايد من المديرين من U + 202a إلى U + 202eشخصيات خاصة
نشر Unicode Consortium
مخططًا للترقيم العام حيث يمكنك العثور على مزيد من المعلومات.
انتظر ... ماذا قرأت للتو؟يمكن أن تشمل المعرفات المتغيرة مسافات!
يتم عرض العنصر النائب U + 3164 Hangul كمساحة واسعة. إذا كان الحرف غير
مدعوم بوضوح
في العرض ، فسيتم عرضه على أنه غير مرئي تمامًا (ولا يشغل مساحة ، أي "عرض صفري"). هذا يعني أنك لن ترى أبدًا حرفًا بديلاً للشخصية القبيحة ( ).
لست متأكدًا بعد من سبب توجيه U + 3164 إلى التصرف بهذه الطريقة. ومن المثير للاهتمام ، تمت إضافة U + 3164 إلى Unicode في الإصدار 1.1 (1993) - لذلك كان لدى متخصصي الاتحاد الكثير من الوقت للتفكير فيه. على أي حال ، وهنا بعض الأمثلة.
> var ᅟ = 'foo'; undefined > ᅟ 'foo' > var ㅤ= alert; undefined > var foo = 'bar' undefined > if ( foo ===ㅤ`baz` ){}
** ملاحظة: ** اختبرت تقديم U + 3164 على Ubuntu و OS X مع المعلمات التالية: "العقدة" ، و "php" ، و "روبي" ، و "python3.5" ، و "scala" ، و "vim" ، و "cat" ، "chrome` +" github gist ". Atom هو النظام الوحيد الذي فشل (عن طريق الخطأ) في عرض الحقول الفارغة. لا يزال يتعين علي التحقق من الكود في Emacs و Sublime. كما أفهمها ، لن يعيد Unicode Consortium إعادة تعيين أو إعادة تسمية الأحرف أو نقاط الرمز ، ولكن يمكن إقناعها بتغيير خصائص الأحرف مثل ID_Start و ID_Continue.معدلات
Zero Width Combiner (ZWJ) هو حرف غير قابل للطباعة في مجموعة كمبيوتر من بعض الخطوط المعقدة ، مثل العربية أو أي خط هندي. عند وضعها بين حرفين لا يمكن ربطهما بخلاف ذلك ، فإن ZWJ تجبرهما على الطباعة في شكل مشترك.
Zero Width Disconnector (ZWNJ) هو حرف غير قابل للطباعة في مجموعات الكتابة المستندة إلى الكمبيوتر مع الحروف المركبة. عند وضعها بين حرفين يمكن ضمهما بطريقة أخرى إلى رابط ، فإن ZWNJ تجبرهما على الطباعة في صيغتهما الأصلية والأصلية ، على التوالي. تعمل كمسافة ، ولكنها تُستخدم عندما يكون من المستحسن إبقاء الكلمات قريبة من بعضها البعض أو الجمع بين كلمة ما مع مورفها.
> 'a' "a" > 'a\u{0308}' "ä" > 'a\u{20DE}\u{0308}' "a⃞̈" > 'a\u{20DE}\u{0308}\u{20DD}' "a⃞̈⃝"
الأحرف الكبيرة تحويل الاصطدامات
اصطدامات تحويل الحالة الصغيرة
المراوغات واستكشاف الأخطاء وإصلاحها
- يتم تحديد طول الخط عادةً بعدد نقاط الكود . هذا يعني أن الأزواج البديلة ستعتبر حرفين. يمكن تركيب عدة علامات التشكيل على الرمز:
a + ̈ == ̈a
. هذا يزيد من طول السلسلة ، وإنتاج حرف واحد فقط.
- وبالمثل ، فإن انقلاب السلسلة غالبًا ما يصبح مهمة غير تافهة . مرة أخرى ، ينبغي عكس الأزواج البديلة والتشكيلات معًا. تقدم ES Reverser حلاً جيدًا جدًا.
- المقارنات الكبيرة والصغيرة لا تتطابق دائمًا . يمكن التعبير عنها في مثل هذه العلاقات:
- واحد للكثيرين: (ß → SS)
- بالنظر إلى السياق: (... Σ ← → ... ς و ... ΣΤ ... ← → ... στ ...)
- بناءً على الإعدادات المحلية: (I ← → ı و İ ← → i)
واحد لكثير من المقارنات
تعبر معظم الأحرف الموضحة أدناه عن تعيينات رأس برأس في الأحرف الكبيرة والبعض الآخر في الأحرف الصغيرة. من حيث المبدأ ، يمكن تقسيم القائمة إلى قسمين.
حزم كبيرة والمكتبات
- PhantomScript -: ghost :: flashlight: تنفيذ جافا سكريبت والهندسة الاجتماعية غير المرئي
- ESReverser - معالجة سلسلة JavaScript على أساس Unicode .
- تقليد - إساءة استخدام يونيكود
- python-ftfy - محاولات لإنشاء أقصى تمثيل صحيح وكامل للنص الوارد في Unicode.
- vim-troll-stopper - حماية التعليمات البرمجية الخاصة بك من المتصيدون يونيكود.
رمز تعبيري
Unicode (diversity), . .
, , . — . :
, .
8.0 ( 2015 ) - . , ( , FitzpatrickSkinType.pdf). .
Unicode
, \u{1F466}\u{1F3FE}
.

+

→


JavaScript (ES6)
, ID_START , . , ID_CONTINUE , .
CSS .
<!-- place this within the document head --> <meta charset="UTF-8" /> <div class="ಠ_ಠ">You do not have access to this page.</div> <div class="">Your changes have been saved successfully!</div>
.ಠ_ಠ { border: 1px solid #f00; } . { background: lightgreen; }
HTML
HTML- , , .
, HTML .
:
function testBegin(str){ try{ eval(`document.createElement( '${str}' );`) return true; } catch(e){ return false; } } function testContinue(str){ try{ eval(`document.createElement( 'a${str}' );`) return true; } catch(e){ return false; } }
:
TrueType OpenType UTF-8, 65 535 . 1,1 UTF-8, .
256 .

, () (CJK). , , « ».
. 17- .
:
- — - .
- — , .
- — .
- — , . .
- , — , . , .
- — , . , [Ä] [A] [¨].
- — .
- — , , . .
- — , .
- — .
: c codepoints.net .