متوفر أيضًا بلغات أخرى: English · Español · Português · Français
كاشف المحارف غير المرئية: اعثر على المخفي
كل محرف غير مرئي أو قابل للتجاهل أو متنكّر في نصك، باسمه وعدده وموضعه.
ما المحرف غير المرئي؟
المحرف غير المرئي نقطة ترميز لا تشغل حيّزًا مرئيًّا لكنها موجودة في النص فعلًا. بعضها نافع: فرابط عديم العرض هو ما يجعل إيموجيين إيموجيًا واحدًا، والواصلة اللينة تشير إلى موضع القطع الممكن في الكلمة. وبعضها بنيوي، كضوابط الاتجاه التي تتيح للعربية والإنجليزية أن تتقاسما سطرًا واحدًا. وبعضها موجود لأن أحدهم وضعه.
وهي تسبب المشكلات لأن البرمجيات تراها وأنت لا تراها: فبحث كان ينبغي أن يطابق لا يطابق، وسلسلتان تبدوان متطابقتين تُقارَنان مختلفتين، ومفتاح واجهة برمجية منسوخ يكتسب محرفًا في وسطه فيتوقف عن العمل، ولا شيء على الشاشة يفسّر ذلك.
تعثر هذه الصفحة عليها، وتسمّي كل واحد منها باسمه الرسمي في يونيكود وبنقطة ترميزه، وتدلّك على موضعه من النص. والمثال المحمَّل أعلاه يُقرأ عشرين محرفًا مرئيًّا وطوله في الحقيقة تسع وأربعون نقطة ترميز.
طريقة الاستخدام
- الصق النص. أي شيء: رسالة، أو اسم ملف، أو خلية في جدول، أو رسالة حفظ يعجز grep عن إيجادها. يُفحص في متصفحك ولا يُرفع أبدًا.
- اقرأ الجدول. كل صف محرف واحد، بنقطة ترميزه واسمه في يونيكود ونوعه وعدد مرات وروده ومواضعها.
- ثم أزِلها إن شئت. زرّ واحد يزيل كل المحارف المخفية، ويحوّل الفراغات الغريبة إلى فراغات عادية بدل حذفها، فتبقى الكلمات التي تبدو منفصلة منفصلة.
لماذا يجد هذا أكثر مما تجده أداة التنظيف
تكاد كل أداة تزيل المحارف غير المرئية تحمل قائمة مكتوبة يدويًّا بالقليل الذي صادفه مؤلفها. وهذا يصدق على أداة تنظيف النص في هذا الموقع أيضًا: قائمتها تغطي ثلاث عشرة نقطة ترميز، وهذا سبب وجود هذه الصفحة.
ينشر يونيكود الجواب الحقيقي في خاصية اسمها Default_Ignorable_Code_Point، تسم المحارف التي لا ينبغي للمُصيِّر أن يرسم لها شيئًا. وهي تغطي 4174 نقطة ترميز، منها 405 محارف مخصَّصة ولها أسماء. فقائمة من ثلاثة عشر تُغفل 392 محرفًا مسمّى غير مرئي بالتعريف: مُحدِّدات الصورة الـ260 كلها، وكتلة الوسوم بأسرها بمحارفها الـ97، ورابط الحروف الرسومية، وعلامة الحرف العربي، وحاشيات الهانغول.
على أن ليس كل ما يستحق الوسم قابلًا للتجاهل، فيبيّن الجدول المرجع الذي يستند إليه كل صف. فالفراغ غير الفاصل يبدو فراغًا تمامًا، لكنه ليس الفراغ الذي يقطع عنده المحلّل، ومحرف التحكّم في وسط السطر غير مرئي دون أن يسمّيه يونيكود قابلًا للتجاهل. وكلاهما مذكور، ولكل منهما بيان بما هو.
كتلة الوسوم، والنص الذي لا تراه
سبعة وتسعون محرفًا بين U+E0001 وU+E007F تحاكي ASCII محاكاةً تامة: فحرف A الكبير في الوسوم هو A مضافًا إليه إزاحة ثابتة، وفراغ الوسم فراغ، ولا يُرسم أي منها إطلاقًا. ولها عمل مشروع داخل متتاليات أعلام الإيموجي، وبها تُرمَّز أعلام إنجلترا واسكتلندا وويلز.
وهي كذلك وسيلة أن تسافر جملة داخل نص يبدو عاديًّا تمامًا. الصق هنا شيئًا يحتويها فيظهر أعلاه السطر المفكوك يتهجّى ما كان مخبّأً. والمثال المحمَّل في هذه الصفحة هو ذلك بعينه: عشرون محرفًا مرئيًّا تحمل تعليمةً لا يراها أحد.
وقد صار هذا أمرًا يستحق الفحص لا طرفةً، لأن النص اليوم يُلصق باستمرار في أنظمة تقرأ كل محرف لا ما يراه الإنسان وحده. وسواء أكان النص المخفي علامةً مائية أم واسمَ تتبّع أم تعليمة، فالخطوة الأمينة الأولى أن تستطيع النظر إليه.
ما لا تستطيع هذه الصفحة إخبارك به
لا تستطيع إخبارك لماذا وُجد محرف بعينه. فالرابط عديم العرض في وسط إيموجي يؤدي عمله، وهو نفسه بين حرفين لا يؤديه. تذكر الأداة ما هو موجود وتترك لك الحكم، لأن نقطة الترميز نفسها مشروعة في سياق ومريبة في آخر.
وهي تعمل كذلك على نقاط الترميز لا على ما تسمّيه أنت حروفًا. وهذه هي الوحدة الصحيحة هنا، إذ يقع كل محرف وسم وكل محدِّد صورة حديث فوق المستوى المتعدد اللغات الأساسي، فالكاشف الذي يمشي في النص المشي الساذج يشطر كلًّا منها نصفين ولا يجد منها شيئًا؛ غير أن ذلك يعني أن إيموجي العَلَم أو ذا لون البشرة يُحتسب عدة نقاط ترميز لا رمزًا واحدًا.
وأخيرًا، النتيجة النظيفة تعني ألّا شيء مخفيًّا مما يسمّيه يونيكود. وقد يظل النص خادعًا بطرق لا تغطيها هذه الصفحة، أظهرها استعمال حروف من أبجدية أخرى تطابق اللاتينية في الشكل. وتلك مسألة أخرى، وصفحة أخرى.
لماذا هي مجانية؟
قائمة المحارف بضعة كيلوبايتات تُشحن مع الصفحة، والفحص يجري في متصفحك. لا يُرفع شيء مما تلصقه، ولا يُسجَّل شيء، ولا حساب عليك إنشاؤه.
بلا تسجيل، وبلا حدود، وبلا علامة مائية على أي شيء تنسخه.