فحص حروف يونيكود
جدول بكل حرف في النص: رمزه وبايتاته وطرق كتابته، مع تحديد الخفي منها.
يقبل الحرف نفسه، أو نصًا كاملًا، أو رمزًا مكتوبًا بصيغة U+0623 أو 0x623 أو أ أو رقمًا عشريًا. عدة رموز تُفصل بمسافة.
اكتب حرفًا أو الصق نصًا ليظهر جدول بكل حرف فيه: رمزه، وبايتاته، وطريقة كتابته في HTML وCSS وجافاسكربت، والمحارف الخفية إن وُجدت.
عن الأداة
كل حرف في يونيكود له رقم يُسمى نقطة الترميز ويُكتب بصيغة U+0623 (الألف بهمزة فوقها). الرقم نفسه يُخزَّن في الملفات بطرق مختلفة: في UTF-8 يصبح الحرف العربي بايتين (D8 A3) والإيموجي أربعة، وفي UTF-16 (ما تستخدمه جافاسكربت داخليًا) يأخذ الحرف العربي وحدة واحدة والإيموجي وحدتين تُسميان زوجًا بديلًا، ولذلك يُعطي "😀".length القيمة 2. الأداة تعرض لكل حرف رمزه وبايتاته وكتابته في HTML (أ) وCSS (\0623) وجافاسكربت (\u0623).
الاستعمال الأهم: المحارف التي لا تُرى. النص المنسوخ من Word أو واتساب أو صفحة ويب يحمل أحيانًا مسافات صفرية العرض U+200B، وعلامات اتجاه مثل U+200F وU+061C، ومسافة غير فاصلة U+00A0، وعلامة ترتيب البايتات U+FEFF في أول الملف. لا يراها أحد، لكنها تُفشل المقارنة بين نصين متطابقين ظاهريًا، وتكسر البحث، وتُظهر مربعًا فارغًا في بعض الخطوط، وتُفسد أعمدة CSV. كل محرف من هذا النوع يُعلَّم بشارة حمراء، وزر واحد ينسخ النص بعد حذفها كلها.
الأسماء الكاملة مخزّنة لحروف الكتلة العربية وASCII والمحارف الخفية الشائعة، لأن جدول أسماء يونيكود كاملًا يزن ميغابايتات؛ لبقية الحروف يُعرض اسم الكتلة (مثل «سيريلي» أو «رموز تعبيرية») مع الإشارة إلى أن الاسم غير مخزّن. طول NFC وNFD يوضح لماذا يختلف عدّ الحروف بين برنامجين: «آ» حرف واحد في الصيغة المركّبة وحرفان (ألف + مدّة) في المفكّكة.
أسئلة شائعة
لماذا يقول جافاسكربت إن طول «😀» هو 2؟
لأن length يعدّ وحدات UTF-16 لا الحروف، والإيموجي خارج المستوى الأساسي يحتاج إلى وحدتين. لعدّ الحروف الحقيقية استخدم [...text].length أو Intl.Segmenter إن أردت عدّ الإيموجي المركّب حرفًا واحدًا.
كيف أعرف إن كان في نصي محارف خفية؟
الصق النص هنا. العدّاد «محارف غير مرئية» يذكر عددها، وفي الجدول تظهر شارة حمراء مكان الحرف مع اسمه ورمزه، وزر «نسخ النص بعد حذف المحارف غير المرئية» يعطيك نسخة نظيفة.
ما الفرق بين \u0623 و\u{1F600} في جافاسكربت؟
الصيغة الأولى تقبل أربعة أرقام ست عشرية فقط، فتكفي لحروف المستوى الأساسي كالعربية. الإيموجي وما فوق U+FFFF يحتاج إلى الصيغة الثانية بالأقواس (ES2015) أو إلى كتابة الزوج البديل صراحة مثل \uD83D\uDE00.
هل حذف المحارف الخفية آمن للنص العربي؟
في الغالب نعم. لكن علامة الاتجاه U+200F تكون مقصودة أحيانًا لإصلاح ترتيب رقم أو اسم لاتيني داخل جملة عربية، وواصل الصفر U+200D هو ما يربط أجزاء الإيموجي المركّب (العائلة، العلم). راجع النتيجة قبل اعتمادها.