كل قاعدة أحرف SMS تهم فعلا: 160 حرفا في GSM-7، و 70 في UCS-2، و 153 / 67 لكل جزء متسلسل، بالإضافة إلى فخاخ الترميز (علامات الاقتباس الذكية، الإيموجي، الأحرف المعلمة) التي تضاعف فاتورتك بهدوء.
ما حد أحرف SMS؟
رسالة SMS واحدة هي 160 حرفا عند ترميزها بـ GSM-7، أو 70 حرفا عند ترميزها بـ UCS-2. الناقل يختار الترميز تلقائيا حسب محتوى الرسالة: إذا كانت كل الأحرف ضمن أبجدية GSM-7 الافتراضية، تحصل على 160 كاملة. إذا سقط حتى حرف واحد خارجها، يعاد ترميز الرسالة كاملة كـ UCS-2 وينخفض الحد إلى 70.
بمجرد تجاوز 160 / 70، تنقسم الرسالة إلى أجزاء متسلسلة. كل جزء يحمل ترويسة 6 بايت للسماح للهاتف المستقبل بتجميع الرسالة، لذا تستخدم SMS متعددة الأجزاء 153 حرفا فقط (GSM-7) أو 67 حرفا (UCS-2) لكل جزء.
| السيناريو | الحد | ملاحظات |
|---|---|---|
| SMS واحدة، GSM-7 | 160 حرفا | نص لاتيني عادي، بدون إيموجي، بدون علامات اقتباس ذكية |
| SMS واحدة، UCS-2 | 70 حرفا | أي حرف غير GSM-7 يفرض هذا |
| جزء متسلسل، GSM-7 | 153 حرفا | UDH 6 بايت يأكل 7 أحرف لكل جزء |
| جزء متسلسل، UCS-2 | 67 حرفا | UDH 6 بايت يأكل 3 أحرف لكل جزء |
| iMessage / RCS / WhatsApp | 20.000+ حرفا | ليست SMS. قواعد مختلفة تماما |
ترميز GSM-7: معيار 160 حرفا
GSM-7 هو ترميز SMS الافتراضي المحدد في معيار GSM 03.38. يحزم 7 بتات لكل حرف، ولهذا تتسع 160 حرفا في حمولة SMS 1.120 بت (140 بايت). تحتوي الأبجدية على 128 حرفا أساسيا بالإضافة إلى جدول امتداد من 10 أحرف. أي شيء خارج تلك الأحرف 138 يفرض التحول إلى UCS-2.
تغطي الأبجدية الأساسية الأحرف اللاتينية غير المعلمة (A-Z، a-z)، الأرقام 0-9، علامات الترقيم الشائعة، المسافة، وبعض الأحرف اللاتينية الأوروبية المعلمة. اللغة العربية ليست ضمن GSM-7، لذا كل رسالة SMS باللغة العربية تستخدم UCS-2 تلقائيا، مع حد 70 حرفا لكل جزء واحد و 67 لكل جزء متسلسل.
ترميز UCS-2: عند الإجبار على 70 حرفا
UCS-2 هو ترميز Unicode 16-bit (2 بايت). نفس حمولة SMS 140 بايت تتسع لـ 70 وحدة كود UCS-2 لكل جزء، أو 67 عند التسلسل. ينتقل الناقلون إلى UCS-2 في اللحظة التي يسقط فيها حرف واحد في رسالتك خارج GSM-7. لا يوجد تحويل جزئي. حرف واحد يقلب الإرسال بأكمله.
أكثر مفعلات UCS-2 شيوعا هي أحرف لا يفكر فيها معظم المرسلين: علامات الاقتباس المنحنية، الشرطات الطويلة والقصيرة، حرف الحذف، كل إيموجي، وأي نص غير لاتيني (السيريلية، اليونانية الصغيرة، العربية، العبرية، التايلاندية، CJK).
SMS المتسلسلة: لماذا الأجزاء 153 / 67 حرفا
عندما تتجاوز رسالة حد SMS الواحدة، يتم تقسيمها إلى أجزاء ويرسل كل جزء كرسالة SMS منفصلة عبر الهواء. للسماح لهاتف المستلم بإعادة تجميعها بالترتيب الصحيح، يحمل كل جزء ترويسة بيانات مستخدم (UDH) برقم مرجعي، عدد الأجزاء الإجمالي، وموضع الجزء.
UDH طوله 6 بايت. في GSM-7 ذلك يعادل 7 أحرف من الحمولة، مما يقلل سعة كل جزء من 160 إلى 153 حرفا. في UCS-2 نفس 6 بايت هي 3 وحدات كود UCS-2، مما يخفض الحد من 70 إلى 67 حرفا.
التكلفة الفعلية لإرسال SMS متعددة الأجزاء
تقريبا كل واجهة برمجة تطبيقات SMS تجارية تفوتر لكل جزء، وليس لكل رسالة. حسابات الأسعار بسيطة: التكلفة الإجمالية = الأجزاء لكل رسالة × المستلمون × معدل لكل جزء. حيث تصبح الأمور باهظة هو فخ الترميز. حملة مكتوبة بعلامات اقتباس ذكية تضاعف عدد أجزائها بصمت وتضاعف فاتورتها بصمت.
كيفية تقليل تكلفة SMS
- استخدم ASCII العادي. جرد علامات الاقتباس الذكية والشرطات الفاخرة وحرف الحذف قبل الإرسال.
- تجنب الإيموجي إلا إذا حصدت نقرة. كل إيموجي يفرض UCS-2 ويكلف حرفين على الأقل.
- أبق SMS الترويجية تحت 160 حرفا. أفضل تحسين تكلفة هو البقاء في جزء GSM-7 واحد.
- اختصر الروابط. URL مع معلمات UTM يمكن أن يأكل 70+ حرفا بمفرده.
- عد قبل أن ترسل. شغل كل حملة عبر عداد الأحرف الذي يكتشف الترميز ويظهر الأجزاء، وليس الأحرف فقط.