كيفية استخدام عدّاد طول السلاسل النصية
- الصق السلسلة النصية التي تريد قياسها.
- قارن أرقام الطول الخمسة بالحد الذي يفرضه نظامك.
- استخدم التفصيل للعثور على الأحرف المخفية أو علامات التشكيل المركّبة.
مزايا عدّاد طول السلاسل النصية
- عناقيد الحروف (graphemes) ونقاط الترميز ووحدات UTF-16 وأحجام البايتات بترميزَي UTF-8 / UTF-16 جنباً إلى جنب
- كشف الأزواج البديلة (surrogate pairs) وعلامات التشكيل المركّبة (combining marks) والأحرف عديمة العرض وأحرف التحكم
- تفصيل لكل حرف مع نقطة الترميز والحجم المرمّز وفئة Unicode
- كشف نظام الكتابة (اللاتينية، العربية، الديفاناغارية، CJK، الرموز التعبيرية…)
- نتائج فورية أثناء الكتابة أو اللصق
مثال على عدّاد طول السلاسل النصية
لماذا تكسر سلسلة تحتوي على رموز تعبيرية عموداً من نوع VARCHAR(10)
الإدخال:
🚀👨👩👧 مرحباالنتيجة:
Graphemes 8 · Code points 14 · UTF-16 units 17 · UTF-8 bytes 39الأسئلة الشائعة حول عدّاد طول السلاسل النصية
لماذا يبلّغ JavaScript عن طول مختلف عمّا تبلّغ عنه قاعدة بياناتي؟
يعدّ JavaScript وحدات ترميز UTF-16، فيكون طول الرمز التعبيري 2. أما VARCHAR(n) في MySQL فيعدّ الأحرف (نقاط الترميز) لكن حدّه بالبايتات يعتمد على الترتيب (collation)، وتعدّ PostgreSQL الأحرف. تعرض هذه الأداة كل هذه القيم جنباً إلى جنب.
ما عنقود الحروف (grapheme cluster)؟
الوحدة التي يدركها القارئ كحرف واحد. فرمز العائلة التعبيري عنقود واحد لكنه سبع نقاط ترميز؛ و"é" قد يكون نقطة ترميز واحدة أو اثنتين بحسب التطبيع (normalisation).
كيف يُحسب حجم UTF-8؟
تستهلك أحرف ASCII بايتاً واحداً، ومعظم الحروف اللاتينية/العربية/العبرية بايتين، والديفاناغارية وCJK ثلاثة بايتات، والرموز التعبيرية وغيرها من الأحرف خارج المستوى الأساسي (astral) أربعة بايتات.
هل يعرض التفصيل الأحرف غير المرئية؟
نعم — تُدرج روابط عديمة العرض (zero-width joiners) وعلامات BOM وأحرف التحكم وعلامات التشكيل المركّبة مع نقاط ترميزها حتى تتمكن من رصد الأحرف المخفية في النصوص المنسوخة.
ملاحظات تقنية
تُعدّ عناقيد الحروف باستخدام Intl.Segmenter عندما يوفره المتصفح، مع الرجوع إلى عدّ نقاط الترميز بخلاف ذلك. ويأتي حجم UTF-8 من TextEncoder، وهو دقيق لأي مدخل بما في ذلك الأحرف البديلة غير المقترنة (unpaired surrogates) التي تُرمَّز كـ U+FFFD.