ما هي الأحرف غير المرئية؟

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

وصف الأداة

عارض الأحرف غير المرئية هو محرر نصوص تفاعلي يعرض كل حرف غير مرئي كرمز مرئي في مكانه مباشرة. الصق أو اكتب أي نص وسيتم استبدال كل حرف مخفي على الفور برمز صغير - تظهر علامات التبويب كـ ، والمسافات كـ ·، والمسافات ذات العرض الصفري كـ ·، والعلامات الاتجاهية كـ / ، وBOM كـ ، وما إلى ذلك. عند تحريك المؤشر فوق أي رمز، يظهر تلميح يحتوي على الاسم الكامل للحرف ونقطة رمز Unicode. لا شيء يترك المحرر؛ كل العرض يحدث محلياً في متصفحك.

أمثلة

نص الإدخال (خام) ما تراه في العارض
Hello\u200BWorld (مسافة عرض صفري بين الكلمات) Hello·World مع رمز · يشير إلى U+200B
\u202Eright-to-left override →right-to-left override مع الرمز الاتجاهي في البداية
line one\r\nline two رموز إرجاع العربة وتغذية السطر قبل السطر الجديد
\uFEFFstart of file ▯start of file يعرض BOM في الموضع 0

الميزات

  • العرض المضمن: يتم عرض الأحرف غير المرئية كرموز مباشرة داخل المحرر بدلاً من لوحة منفصلة، لذا تراها في السياق مع النص المحيط
  • تغطية أحرف واسعة: يتعامل مع أحرف التحكم C0 و C1، وجميع أحرف تنسيق Unicode المسماة، ومتغيرات مسافات Unicode (مسافة en، مسافة em، مسافة شعر، مسافة ضيقة بدون فاصل، إلخ)، وأحرف التنسيق الاتجاهي، ومحددات التباين، وأحرف العلامات، وBOM
  • التلميحات: يعرض تحريك المؤشر فوق أي رمز الاسم الكامل للحرف ونقطة رمز Unicode (على سبيل المثال، Zero Width Space — U+200B)
  • تمييز المسافات البيضاء القياسية: يتم تمييز المسافات وعلامات التبويب العادية باستخدام علامات المسافات البيضاء المدمجة في CodeMirror، مما يبقيها مميزة بصرياً عن النص العادي
  • وضع النص العادي: يبقى المحرر في وضع النص العادي بحيث لا يتم إعادة تفسير الأحرف الخاصة أو تعديلها أثناء الكتابة

حالات الاستخدام

  • تصحيح أخطاء القص واللصق: غالباً ما يحمل النص المنسوخ من ملفات PDF أو صفحات الويب أو معالجات الكلمات مسافات عرض صفري أو واصلات ناعمة أو مسافات غير قابلة للكسر التي تسبب عدم تطابق في مقارنات السلاسل ونتائج البحث
  • فحص ملفات البيانات: الصق CSV أو JSON أو مخرجات السجل لتحديد أحرف التحكم غير المتوقعة (بايتات فارغة، إرجاع العربة، BOM) قبل استيراد البيانات إلى قاعدة بيانات أو محلل
  • تصحيح أخطاء الويب والأكواد: تحقق من إدخال المستخدم أو استجابات API للعلامات الاتجاهية المخفية أو أحرف التنسيق التي قد تكسر العرض أو تسبب مشاكل أمنية

كيف يعمل

تستخدم الأداة CodeMirror 6 مع ملحق مخصص يتكرر على كل حرف في منفذ المحرر المرئي. لكل نقطة رمز، يتحقق من جدول البحث للأحرف غير المرئية المعروفة، واختبارات ضد فئات خصائص Unicode \p{Cc} (تحكم) و \p{Cf} (تنسيق)، واكتشاف محددات التباين ونطاقات أحرف العلامات. يتم استبدال الأحرف المطابقة برموز ديكوريشن مضمنة تعرض الرمز الغليفي المقابل. يتم تفويض المسافات وعلامات التبويب العادية إلى ملحق highlightWhitespace المدمج في CodeMirror.