سؤال لماذا يجب ألا أستخدم أحرف Unicode لمحاكاة أنماط الطباعة (مثل الأحرف الكبيرة أو النص البرمجي)؟


يحتوي Unicode على أحرف مختلفة تشبه متغيرات منمقة طباعياً من الأحرف الأبجدية اللاتينية الأساسية وتسمح للشخص كتابة النصوص في أنماط الطباعة المطابقة دون اللجوء إلى وضع العلامات أو ما شابه. على سبيل المثال ، يمكن للمرء أن يحاكي:

  • قبعات صغيرة:

    ʙᴇʜᴏʟᴅ ᴛʜɪꜱ ꜰᴀɴᴄɪʟy ᴇɴᴄᴏᴅᴇᴅ ᴛᴇxᴛ.

  • النصي:

    𝓑𝓮𝓱𝓸𝓵𝓭 𝓽𝓱𝓲𝓼 𝓯𝓪𝓷𝓬𝓲𝓵𝔂 𝓮𝓷𝓬𝓸𝓭𝓮𝓭 𝓽𝓮𝔁𝓽.

  • Blackletter:

    𝕭𝖊𝖍𝖔𝖑𝖉 𝖙𝖍𝖎𝖘 𝖋𝖆𝖓𝖈𝖎𝖑𝖞 𝖊𝖓𝖈𝖔𝖉𝖊𝖉 𝖙𝖊𝖝𝖙.

اجتمع هذا الاهتمام على Stack Exchange (على سبيل المثال ، هنا، هناو هنا) وتم انتقاد مثل هذه التقنيات. لكن ما الذي يمكن أن يحدث بشكل خاطئ عندما أستخدمها؟


123
2017-12-26 11:00


الأصل


أنا أقرأ هذا من هاتفي ولا أستطيع رؤية آخر نصين رائعين. - Scimonster
لأنه غير قابل للقراءة على بعض الأجهزة: i.stack.imgur.com/kM73J.png - Chris Kent
لأن بعضنا يريد أن يرى صفحات الويب في ما نعتبره خطوطًا قابلة للقراءة (والأحجام والألوان و c) ، لذلك نستخدم على سبيل المثال أنماط صفحات مستخدم CSS لتجاوز أنماط المؤلف. قد تلاحظ أنه على الرغم من أن الأمثلة الثلاثة الخاصة بك تظهر على جهازي ، على ما يبدو تمامًا كما تنوي الظهور ، إلا أنه لا يمكن قراءتها إلا على الحدود. لماذا تضع شهيتك الفنية فوق سهولة قراءة القراء؟ - jamesqf
في ما يلي ملاحظة مثيرة للاهتمام: يتعذر على Edge العثور على نص في آخر عيّنتين ، ولا يتمكن Chrome من العثور على نص في النموذج الأول. (جرب Ctrl + F'ing لـ BEHOLD في كلا المستعرضين.) لم يتم التحقق من Firefox. - Schism
Schism Firefox لا يجد أي منها. يبدو أن Chrome يستخدم تسميتي NFKC / NFKD قبل البحث ، مما يؤدي إلى تحليل البرنامج النصي ونص Blackletter إلى Basic Latin. لا يبدو أن فايرفوكس يفعل ذلك. الحافة ... تفعل شيئًا غريبًا. - Bob


الأجوبة:


جنرال لواء

هذه الأحرف غير مخصصة للنص الأبجدي اللاتيني العادي ، ولكن للنصوص الصوتية ، النص الأبجدي السيريلي ، لاستخدامها كرموز رياضية (تمثل المتغيرات) ، أو ما شابه ذلك. الطريقة الوحيدة المتوافقة مع Unicode لترميز النص في الأبجدية اللاتينية الأساسية هي استخدام الأحرف المستخدمة في الغالب لهذا الغرض (أي من اللاتينية الأساسية كتلة Unicode).

كما هو الحال مع العديد من المعايير الأخرى ، يجب أن تفكر مرتين في انتهاك Unicode. علاوة على ذلك ، يشتمل Unicode على العديد من أنظمة الكتابة ، وحالات الاستخدام ، والأشياء الموجودة فقط للتوافق مع الإصدارات السابقة مع المعايير الأخرى1 أن الفهم الكامل لجميع دوافعه هو علم خاص به. قصة قصيرة طويلة ، إلا إذا كنت حقا تعرف ما تقوم به ، من المحتمل جدًا أن يحدث شيء ما لم تفكر به حتى عن بُعد.

أمثلة محددة

إمكانية الوصول

لا يوجد نص مشفّر فقط ليتم عرضه في بعض الخطوط. ويمكن أيضًا تفسيره ، على سبيل المثال ، من خلال برامج قراءة الشاشة. ويجب ألا يحتاج قارئ الشاشة إلى تخمين ما إذا كان

𝓽𝓱𝓮

من المفترض أن يكون المقال المحدد أو المنتج الرياضي2 للمتغيرات 𝓽 و 𝓱 و 𝓮 - وهو ما تصنعه هذه الحروف. وبالتالي ، سيكون أفضل سلوك هو توضيح هذه الأحرف ، على سبيل المثال ، قائلا حرفيا ما يلي:

نص جريء صغير ر ، نص عريض صغير ح ، والنص العريض الصغير e

لا ينبغي أن نقول فقط "لأن" بدلاً من ذلك لأنه لن يقرأ بشكل صحيح النصوص الرياضية التي تحدث رموز لتشكل كلمة منطوقة.3

قابلية التنقل

إذا تم تقديم النص الخاص بك بشكل جيد على جهازك ، فهذا لا يعني أنه سيكون على القارئ. المثال الأكثر وضوحًا هو أن القارئ ليس لديه أي خط يدعم هذه الأحرف أو أن النص يتم تقديمه بواسطة برنامج لا يدعم الخطوط الاحتياطية. من المسلم به أن هذا أصبح أقل شيوعًا على نحو متزايد. ضع في اعتبارك أن بعض الأشخاص مثل عسر القراءة يحتاجون إلى خطوط خاصة أقل احتمالاً لدعم هذه الأحرف.

ولكن حتى إذا كان جهاز القارئ يستخدم فقط خطًا مختلفًا ، فقد يؤدي ذلك إلى جعل النص أقل قابلية للقراءة. ل المثال الاول، يتم تقديم هذا مع خطين مختلفين:

𝓉𝒽ℯ rendered with FreeSerif and STIX

يعرض Serif النص بالكامل كما قد ترغب في أن يتم عرضه عند استخدام أحرف خاصة لمحاكاة النص ، وهو محاكاة الكتابة اليدوية بضربة مستمرة. ومع ذلك ، يتم إجراء هذه الأحرف لاستخدامها كرموز رياضية ، الاتصال الذي لا معنى له. ومن ثم تقديم ستيكسوالذي تم تصميمه خصيصًا للأغراض الرياضية ، يتوافق أكثر مع كيفية استخدام هذه الأحرف.

في المثال الثانيلنفترض أنك أو القارئ مائلًا "мᴜт мy вᴀʀ" لسبب ما. مع خط جيد ، سوف تحصل عليها4:

сᴜт мy вᴀʀ rendered in upright and italics. italics reads as "cum my bar"

والسبب في ذلك هو أن القبعات الصغيرة كانت (جزئيا) تحاكي الحروف السيريلية ، و أحيانًا ما تبدو السيريلية المائلة مختلفة جدًا عن نظرائهم المستقيمين. مرة أخرى ، هذا هو السلوك السليم.

قابلية البحث

ك المثال الأول ، ضع في اعتبارك ما تريد أن يقوم به بحث معقول مع الحرف 𝒲 (النص الرياضي) W). افترض أن البحث له وضعان ، الوضع الافتراضي و ال الوضع الدقيق (تسمى عادة حساسية الموضوع). يجب أن تكون هذه الشخصية:

  • وجدت عند البحث عن ث أو W في الوضع الافتراضي - لأولئك الذين لا يريدون إزعاج إدخال أو نسخ-لصق الحرف الخاص في حقل البحث؛

  • وجدت عند البحث عن 𝒲 في الوضع الدقيق - لأولئك الذين يريدون البحث حيث ذكر المتغير المقابل في وثيقة رياضية ³ ؛

  • لم يتم العثور عليها عند البحث عن 𝓌 ، ث أو W في الوضع الدقيق على حساب كسر بحث مماثل لما سبق.

ولكن إذا استخدمت هذا الحرف لمحاكاة النص العادي ، فيجب العثور عليه عند البحث عنه W أو 𝒲 في الوضع الدقيق ، والتي تتعارض مع ما ورد أعلاه.

ك المثال الثاني نعتبر أن الأحرف السيريلية لا يجب أن توجد أبداً عند البحث عن الأحرف اللاتينية والعكس ، لأنها أشياء مختلفة تمامًا. ومع ذلك ، إذا استخدمت الأحرف السيريلية لمحاكاة الأحرف اللاتينية الصغيرة ، فأنت بحاجة إلى حدوث ذلك ، إذا كنت لا تريد أن يتم كسر قابلية البحث. هذا من شأنه أن يؤدي إلى العثور على الكثير من الأشياء العديمة الجدوى إذا بحثوا عن كلمة لاتينية أبجدية نادرة تحدث فقط لتتوافق مع الأحرف الصغيرة الزائفة لبعض الكلمات السيريلية الأبجدية الشائعة (والعكس بالعكس).

لا يمكن لخيار البحث الدقيق حل هذه المشكلة ، لأن هذا محجوز لأغراض أخرى في تلك الحروف الهجائية.

بشكل عام، من المستحيل إنشاء بحث (بدون مقدار مجنون من الخيارات) لا يتم كسره باستخدام أحرف خاصة لمحاكاة نص لاتيني منسق.


1أنت تعلم أن XKCD عن الفشل الحتمي لتوحيد المعايير؟ حسنا ، نجح يونيكود.
2أو أيا كان المشغل الفارغ في الاتفاقية ذات الصلة
3إنني أدرك أن عدداً قليلاً جداً من النصوص الرياضية هذه الأيام يدعم هذا التشفير أو شيئًا متوافقًا معه ، لكن النقطة هي أنه في يوم من الأيام يتم ذلك. قد لا يزال النص الذي تستخدمه Unicode-abusing حوله وقراءته.
4ما لم تكن تتوطين باللغة المقدونية أو الصربية ، حيث ستحصل على نتيجة مختلفة ولكنها غير مرغوب فيها.


220
2017-12-26 11:00



التعليقات ليست للمناقشة الموسعة. كانت هذه المحادثة انتقل إلى الدردشة. - Journeyman Geek♦
ماذا عن المثال الثالث؟ لماذا يوجد نص blackletter حتى في Unicode مقابل بعض الخط فقط؟ - posfan12
@ posfan12: يتم استخدامه كأبجدية رياضية مميزة - مثل أحرف النص البرمجي. (لاحظ أن ترقيم الأمثلة هنا لا علاقة له بالنقاط في السؤال). - Wrzlprmft
يقترح مثال صغري الخاص بك لغزًا / منافسًا: ابحث عن جملة صالحة تصبح جملة مختلفة عند المائل ... (كل من يفسرها القراء المستندين إلى اللاتينية ، على سبيل المثال) - Hagen von Eitzen


ما يمكن أن تذهب الخطأ؟ حسنا ، أنا أرى هذا:

enter image description here

في Firefox 50.1.0 على نظام التشغيل Windows 7.

مشكلة رسومات مفقودة، في هذه الحالة على جهاز محمول ، يتضح أكثر في صورة تعطى من قبل المستخدم كريس كنت في تعليقالتي قمت باقتصاصها وتغيير حجمها الأصلي:

enter image description here

والمستخدم oals يرجى ساهم مثال آخر:

enter image description here


66
2017-12-26 11:31



أنا؟ i.stack.imgur.com/lWRAa.png - oals
Lilienthal أنا معجبة بعدد السنوات التي يجب أن تذهب إليها دون التحقق من التحديثات أو تثبيتها. أعني ، ما زلت أستخدم شيئًا من فايرفوكس 3.5 على بعض الأجهزة ، ولكن ليس لدي خيار في هذا الأمر (الجهاز جيد جدًا ، ولكن لا يتوفر متصفح حديث قابل للاستخدام) - mtraceur
Lilienthal بعض الوقت في عام 2020 ، قد تتطلب أرقام إصدار فايرفوكس الرئيسية أرقام 64 بت. بعد ذلك بوقت قصير ، سيأخذ رقم الإصدار مساحة أكبر من البرنامج الفعلي. في محاولة لاستعادة حصة السوق ، ستحتاج أرقام إصدار Chrome إلى كواكب كاملة لتخزينها. - Andrew Morton
هل لديك أي فكرة عن عدد نقاط الضعف الأمنية المعروفة والنشطة التي تعرضها لنفسك باستخدام مثل هذه المتصفحات القديمة؟ - Zach Lipton
Zach Lipton: هل تدرك أن هذا هو أسفل قائمة أولوياتي؟ # 1 هو وجود شيء يمكنني استخدامه بالفعل. على الرغم من أنه ربما احتضن الأشخاص في فايرفوكس (وكثيرون غيرهم) نموذجًا جديدًا: الأمان من خلال عدم القدرة. - jamesqf


أواجه مشكلة XY مع هذا.

Y and X appear smaller than the rest of the text

هنا ، نرى أن Y و X أصغر من باقي النص. في بعض مستويات التكبير تبدو أنها بنفس الحجم ، ولكن يبدو أن هذا قد كشف مشكلة مع هذه الحروف معينة في هذا الخط المعين.


28
2017-12-26 19:46



يمكنني تقديم ثلاثة تفسيرات محتملة لما تراه: 1) سيئة ملمحا. 2) يستخدم خط احتياطي لكل شيء ولكن س و ذ. 3) تصميم الخطوط السيئة: تم تصميم أغطية صغيرة لتكون أكبر قليلا من الأحرف الصغيرة (وهو اختيار صحيح) ومن ثم استخدامها لسمات الأحرف السريرية والسيريلية يونيكود - وهو ليس خيارا جيدا ، على سبيل المثال ، في الاستخدام الصوتي ، هذه الشخصيات يجب أن تتناغم مع الأحرف اللاتينية الأساسية. - في كلتا الحالتين: النقاط 1) و 3) ليست بسبب سوء استخدام Unicode. النقطة 2) تم تناولها بالفعل في الإجابات الأخرى. - Wrzlprmft
Wrzlprmft: من حيث التعريف فهي إساءة استخدام unicode لأن unicode لا يحتوي على أحرف استهلالية صغيرة. ما يحتويه unicode هو أحرف تشبه الأحرف الكبيرة في كتل أبجدية صوتية وكتلة Extended-D اللاتينية. وعلى وجه التحديد ، لا تحتوي الكتلتان الصوتيتان ولا كتلة اللاتينية Extended-D على الحرف الذي يشبه الأحرف الصغيرة X، لذلك تخميني هو أن X يأتي من مكان آخر ، ربما كتلة السيريلية. يحدث الاختلاف بسبب لا 1 ، 2 ولا 3. يرجع السبب في ذلك إلى الحرف المنتمين إلى أبجدية أخرى. - slebetman
slebetman: الأحرف الصغيرة س مجرد حرف صغير عادي س (يمكنك فقط نسخ الحرف من السؤال وفحصه بنفسك). و صغير س لديه الانسجام مع الأحرف الصوتية ، لأنه يستخدم أيضا كحرف لفظي. كما يجب أن يكون له نفس ارتفاع الأحرف السيريلية الصغيرة ، لأنك لا تريد أن تبرز الكلمات السيريلية المفردة من النص اللاتيني (والعكس بالعكس). - Wrzlprmft
upvoted لول في "مشكلة XY" :) - Andrew Morton


إن استخدام شخصيات غير لاتينية تبدو كأنها نوعًا ما تبدو شبيهة باللاتينية ، يضعك في شرك مرسلي الرسائل الاقتحامية ، والمتقدمين بالاباحية ، ومن هم على علم بالمختطفين الذين يريدون أن يكون نصهم غير قابل للإطّلاع ، وغير قابل للتبرير ، وقابل للاشمئزاز. ("لم أقل أبدا أنها آمنة! قلت أنها كانت sigma-alpha-integral-sign-epislon !!! لا يمكن مقاضاتي !!!")

إذا كنت مرتاحًا في هذا النادي ، فابحث عنه.


13
2017-12-28 20:04