في الخط العربي، حرف زيرو-ويدث نون-جوينر (ZWNJ, U+200C) ليس مجرد خلل نادر، بل أداة حقيقية: الحروف العربية تتصل ببعضها افتراضيًا داخل الكلمة، وأحيانًا يحتاج الكاتب إلى منع اتصال حرفين متجاورين عمدًا — كما يحدث في بعض الكلمات المستعارة أو الأسماء — فيُدرَج ZWNJ بينهما لكسر الاتصال بصريًا دون إدراج مسافة فعلية.
لماذا يسبب هذا أخطاء غريبة
المشكلة تبدأ حين يتسلل هذا الحرف غير المرئي إلى نص عادي عن طريق النسخ من مكان آخر: مقارنة سلسلتين تُرجع "غير متساويتين" رغم أن النص على الشاشة يبدو متطابقًا تمامًا، لأن إحدى السلسلتين تحتوي هذا الحرف الخفي والأخرى لا تحتويه.
Trim (القص)
يحذف Trim أحرف المسافة من بداية ونهاية السلسلة، تاركًا المحتوى في المنتصف دون تغيير. هذه عملية قياسية لتنظيف إدخال المستخدم — المسافة الزائدة غير المقصودة في بداية حقل نموذج لا ينبغي أن تؤثر على مقارنة القيمة أو التحقق منها.
دمج المسافات
عملية شائعة أخرى هي استبدال عدة أحرف مسافة متتالية بواحدة. مفيد للنصوص المنسوخة من مصدر منسّق (مثل PDF أو جدول)، حيث قد تظهر مسافات مزدوجة أو علامات جدولة غير مقصودة مكان مسافة واحدة.
لماذا نحتاج هذا
- تشخيص سبب فشل مقارنة سلسلتين تبدوان متطابقتين.
- تنظيف نص منسوخ من مصدر آخر من أحرف زائدة وغير مرئية، بما فيها أحرف التحكم في الاتصال مثل ZWNJ.
- توحيد إدخال المستخدم قبل تخزينه في قاعدة البيانات.
الأحرف عديمة العرض في النصوص العادية
إلى جانب دورها في الخط العربي، توجد أحرف عديمة العرض أخرى (zero-width space، zero-width joiner) لا تشغل أي مساحة على الشاشة إطلاقًا، لكنها موجودة في النص كأحرف مستقلة. تتسلل هذه الأحرف أحيانًا إلى النص عند النسخ من بعض المواقع أو تطبيقات المراسلة، وقد تُفسد بصمت مقارنة السلاسل أو البحث، مع بقائها غير مرئية تمامًا حتى في محرر النصوص.