عند بناء أنظمة مؤتمتة أو إرسال إشعارات للعملاء، يُصدم العديد من أصحاب الأعمال والمطورين عندما يجدون أن فواتير رسائل SMS الشهرية الخاصة بهم تبلغ ضعف المتوقع. يقدم هذا الدليل الشامل جدولاً يوضح عدد الأحرف التي تستهلكها الرموز الخاصة عند إرسال رسائل SMS، مما يساعدك على فهم كيف يمكن للتحولات الخفية في الترميز أن تزيد من تكاليف رسائلك بشكل كبير.
لماذا تغير الرموز الخاصة طول وتكلفة رسائل SMS
في معايير الاتصالات، لا تُحتسب تكلفة الرسائل النصية بناءً على العدد الفعلي للكلمات التي تكتبها، بل بناءً على "الأجزاء" (segments). يتم ترميز جزء رسالة الـ SMS القياسية باستخدام مجموعة أحرف GSM-7، والتي تسمح بما يصل إلى 160 حرفاً لكل رسالة. ومع ذلك، في اللحظة التي تدرج فيها حرفاً واحداً خارج هذه المجموعة القياسية — مثل رمز تعبيري (emoji)، أو حرف كيريلي، أو حتى "علامة اقتباس ذكية" منسوخة من Microsoft Word — يتحول ترميز الرسالة بالكامل إلى UCS-2 (Unicode).
إن الاعتقاد بأن رسائل sms تقتصر على 160 حرفاً حتى عندما تتضمن رموزاً خاصة ورموزاً تعبيرية بموجب ترميز UCS-2 هو مفهوم خاطئ شائع. في الواقع، بمجرد اكتشاف حرف واحد غير تابع لـ GSM، ينخفض الحد الأقصى للأحرف لكل جزء فوراً من 160 حرفاً إلى 70 حرفاً فقط. إذا كان طول رسالتك 71 حرفاً وتحتوي على رمز تعبيري واحد، فسيتم تقسيمها واحتساب تكلفتها كجزأين منفصلين من رسائل SMS بواسطة مزودي واجهة برمجة التطبيقات (API) التقليديين مثل Twilio أو Plivo.
يعد فهم الرموز الخاصة التي تؤثر عادةً على الرسائل أمراً بالغ الأهمية للحفاظ على انخفاض تكاليفك التشغيلية، خاصة إذا كنت تدير نشاطاً تجارياً خدمياً محلياً مثل عيادة أو صالون أو ورشة إصلاح ترسل تذكيرات بالمواعيد لعملائها.
شرح الفرق بين ترميز GSM-7 و UCS-2
ترميز GSM-7 هو معيار ترميز أحرف 7 بت مصمم خصيصاً لرسائل SMS. وهو يحتوي على معظم الأحرف اللاتينية والأرقام وعلامات الترقيم الأساسية. أما UCS-2 فهو معيار ترميز 16 بت يمكنه تمثيل أي حرف تقريباً في أي لغة، بما في ذلك الرموز التعبيرية، ولكنه يتطلب ضعف البيانات لكل حرف. هذا العبء الإضافي للبيانات هو السبب في قيام شبكات الاتصالات بخفض سعة الجزء إلى 70 حرفاً عند تفعيل ترميز UCS-2.
الجدول الشامل لمطابقة الرموز الخاصة في رسائل SMS
أدناه يوجد جدول يوضح عدد الأحرف التي تستهلكها الرموز الخاصة لإرسال رسائل sms. يوضح هذا الجدول أحرف GSM-7 القياسية، وأحرف GSM-7 الممتدة (والتي تتطلب مساحة حرفين ضمن حد الـ 160 حرفاً)، وأحرف UCS-2 التي تفرض حد الـ 70 حرفاً الصارم.
| فئة الرموز | أمثلة على الرموز | البِتات لكل حرف | وزن الحرف في رسالة SMS | الحد الأقصى للجزء الواحد |
|---|---|---|---|---|
| GSM-7 الأساسي | A-Z, a-z, 0-9، المسافات، علامات الترقيم البسيطة (., !, ?, @, $, إلخ.) | 7 بت | حرف واحد | 160 حرفاً |
| GSM-7 الممتد | ^, {, }, [, ], ~, |, \, € | 14 بت | حرفان | 160 حرفاً (كل حرف ممتد يُحسب كحرفين) |
| UCS-2 (Unicode) | á, í, ó, ñ، ’ (علامة اقتباس ذكية)، الرموز التعبيرية (😀)، الكيريلية، العربية | 16 بت | يجبر الرسالة بأكملها على استخدام Unicode | 70 حرفاً |
كما هو موضح في الجدول، فإن استخدام حرف GSM-7 ممتد مثل القوس المتعرج "{" أو الشرطة المائلة العكسية "\" لا يفرض استخدام Unicode، ولكنه يُحسب كحرفين ضمن حد الـ 160 حرفاً الخاص بك. ومع ذلك، فإن استخدام حرف غير تابع لـ GSM مثل "á" (المستخدم غالباً في إعدادات sms y caracteres especiales باللغة الإسبانية) أو الفاصلة العليا المنحنية "’" سيقلل على الفور حد جزء الرسالة إلى 70 حرفاً.
كيف تؤثر الرموز الخاصة على تكاليف رسائل SMS الخاصة بك
لفهم los caracteres especiales que impacto tienen en el coste de los sms (تأثير الرموز الخاصة على تكلفة رسائل SMS)، دعنا نلقي نظرة على مثال عملي. تخيل أنك تدير عيادة أسنان وترسل التذكير التالي بالمواعيد:
"Hi John, your appointment is scheduled for tomorrow at 3:00 PM. Please reply to confirm or call us if you need to reschedule! Él"
يبلغ طول هذه الرسالة 123 حرفاً. إذا استخدمت حرف "E" العادي بدلاً من حرف "É" الذي يحتوي على نبرة، فسيتم إرسال الرسالة بتنسيق GSM-7. وهي تتناسب تماماً مع حد الـ 160 حرفاً، مما يكلفك جزءاً واحداً (1 segment) فقط من رسائل SMS.
ومع ذلك، بسبب حرف "É" المنبور، تضطر الرسالة إلى التحول لترميز UCS-2. ويصبح حد الجزء الآن 70 حرفاً. يتم تقسيم رسالتك المكونة من 123 حرفاً إلى جزأين (الجزء الأول 67 حرفاً، والثاني 56 حرفاً بسبب ترويسات التقسيم). ستقوم بوابات واجهة برمجة التطبيقات (API) التقليدية بمطالبتك بدفع قيمة رسالتي SMS بدلاً من رسالة واحدة.
إذا كنت تستخدم مزودين تقليديين، فقد يؤدي هذا التقسيم إلى مضاعفة فاتورتك الشهرية أو زيادتها لثلاثة أضعاف. هذا هو السبب في أن العديد من الشركات تبحث عن بديل لـ Twilio أو تطلع على دليل أرخص واجهة برمجة تطبيقات (API) لرسائل SMS لتجنب الرسوم الإضافية العشوائية القائمة على تقسيم الرسائل.
كيف أتجنب الرموز الخاصة في رسائل SMS؟
إذا كنت تريد إبقاء رسائلك ضمن حد الـ 160 حرفاً وتجنب التكاليف غير المتوقعة، فيجب عليك تصفية وتطهير نصوص رسائل SMS الخاصة بك بشكل نشط. إليك استراتيجيات عملية حول كيفية تجنب الرموز الخاصة في رسائل sms:
- تنظيف النصوص المنسوخة والملصقة: تحتوي العديد من قوالب أنظمة إدارة علاقات العملاء (CRM) على علامات ترقيم "ذكية". على سبيل المثال، يمكن للفاصلة العليا المنسوخة (’) أو الفاصلة من محرر نصوص منسق أن تمنع التسليم السليم أو تفعل ترميز Unicode. كمثال من الواقع، تصدر بعض الأنظمة الداخلية للمؤسسات تحذيراً موجزاً للمستشارين: "outbound sms special characters please be aware that any outbound sms sent must be 250 characters or fewer. if your message has been copied & pasted from a saved template and contains a comma (,) or apostrophe ('), please remove the special character and then re-enter it before sending". يضمن استبدال علامات الاقتباس الذكية بعلامات اقتباس مستقيمة قياسية (') التوافق مع GSM-7.
- استبدال الأحرف غير التابعة لـ GSM برمجياً: إذا كان نظامك يولد رسائل SMS ديناميكياً، فقم ببرمجة دالة استبدال أحرف (transliteration) لتبديل أحرف مثل "á" إلى "a"، و "é" إلى "e", و "“" إلى """.
- التعامل مع القيود الخاصة بالمنصات: إذا كنت تطور على منصات منخفضة البرمجة (low-code) للمؤسسات، فاحذر من كيفية تعاملها مع الترميز، مثل إدارة الرموز الخاصة في تكاملات gsm outsystems، حيث قد تقوم متغيرات النصوص تلقائياً بتحويل علامات الترقيم القياسية إلى ما يعادلها في Unicode أثناء عملية تسلسل JSON (JSON serialization).
مقتطف كود Python لتنظيف نصوص رسائل SMS
إليك دالة Python بسيطة لإزالة الرموز الخاصة التي لا تتعرف عليها رسائل sms أو التي قد تجبر الرسالة على استخدام ترميز UCS-2 المكلف:
import unicodedata
def sanitize_for_gsm7(text):
# Map common smart punctuation to GSM-7 equivalents
replacements = {
'\u2018': "'", '\u2019': "'", # Smart single quotes
'\u201c': '"', '\u201d': '"', # Smart double quotes
'\u2013': '-', '\u2014': '-', # En and em dashes
'\u20ac': 'EUR' # Replace Euro sign if needed
}
for unicode_char, gsm_char in replacements.items():
text = text.replace(unicode_char, gsm_char)
# Normalize accents (e.g., é to e)
normalized = unicodedata.normalize('NFD', text)
gsm7_text = "".join([c for c in normalized if not unicodedata.combining(c)])
return gsm7_text
message = "Hello! Your appointment is confirmed for tomorrow é."
print(sanitize_for_gsm7(message))
# Output: "Hello! Your appointment is confirmed for tomorrow e."
التخلص من قلق الترميز مع MySMSGate
بالنسبة للشركات الخدمية المحلية والمدارس والعيادات، فإن القلق بشأن ترميز الأحرف وحدود الأجزاء وهياكل الفواتير المعقدة يمثل صداعاً غير ضروري. هنا يصبح الاختيار بين بوابة SMS مقابل واجهة برمجة تطبيقات SMS (SMS API) أمراً بالغ الأهمية.
يحل MySMSGate هذه المشكلة تماماً. فبدلاً من توجيه رسائلك عبر شبكات اتصالات مكلفة ذات أسعار صارمة تتضاعف بتعدد أجزاء الرسالة، يحول MySMSGate هاتفك الأندرويد وبطاقة SIM الخاصة بك إلى بوابة SMS.
إليك كيف يغير MySMSGate قواعد اللعبة للشركات التي تهتم بالتكلفة:
- تسعير ثابت وموحد: نحن نفرض رسماً ثابتاً قدره 0.02 دولار لكل رسالة مرسلة، بغض النظر عن الطول أو ترميز الأحرف أو الأجزاء. لا داعي للقلق بشأن ما إذا كان الرمز التعبيري أو الحرف المنبور سيضاعف فاتورتك.
- استخدم رقمك الخاص: يتم إرسال الرسائل مباشرة من بطاقة SIM الخاصة بهاتفك الأندرويد. يرى عملاؤك رقماً محلياً مألوفاً، مما يزيد من معدلات الاستجابة والفتح.
- لا توجد تسجيلات معقدة: تجنب تسجيلات 10DLC المعقدة، وموافقات شركات الاتصالات، ورسوم العلامة التجارية الشهرية المرتبطة بواجهات برمجة التطبيقات التقليدية مثل Twilio.
- دعم شريحتين وأجهزة متعددة: إدارة هواتف وبطاقات SIM متعددة من لوحة تحكم واحدة، واختيار الخط الذي تريد الإرسال منه بدقة لكل محادثة عميل.
الأسئلة الشائعة
راجع هذه الأسئلة الشائعة المتعلقة بترميز أحرف رسائل SMS، والرموز الخاصة، وحدود الرسائل.
ما هي الرموز الخاصة التي تقلل حد رسائل SMS إلى 70 حرفاً؟
أي حرف غير مدرج في مجموعة أحرف GSM-7 القياسية سيفرض ترميز UCS-2، مما يقلل الحد الأقصى إلى 70 حرفاً. يشمل ذلك الرموز التعبيريّة، والأبجديات غير اللاتينية (مثل الكيريلية، العربية، اليونانية، العبرية)، وبعض الحروف المنبورة أو علامات الترقيم المزخرفة (مثل علامات الاقتباس الذكية المنحنية).
هل تُحسب المسافات كأحرف في رسائل SMS؟
نعم، تُحسب كل مسافة كحرف واحد في معايير الترميز GSM-7 و UCS-2 على حد سواء.
لماذا تفرض عليّ منصة رسائل SMS رسوماً مقابل رسائل متعددة بينما أرسلت رسالة واحدة فقط؟
إذا تجاوزت رسالتك 160 حرفاً (في GSM-7) أو 70 حرفاً (في UCS-2)، فإن شركة الاتصالات تقوم بتقسيم الرسالة إلى أجزاء متعددة. تفرض واجهات برمجة التطبيقات (APIs) التقليدية رسوماً لكل جزء، مما يعني أن رسالة طويلة واحدة يمكن أن تكلفك بسهولة ضعفي أو ثلاثة أضعاف السعر الأساسي.
كيف يمكنني اختبار ما إذا كانت رسالة SMS الخاصة بي تحتوي على رموز خاصة؟
يمكنك استخدام حاسبات أجزاء رسائل SMS عبر الإنترنت أو تشغيل نص برمجى بسيط للتطهير (sanitization script) في الخلفية البرمجية لديك للكشف عما إذا كان نصك يفعل ترميز UCS-2 Unicode قبل إرساله إلى مزود واجهة برمجة التطبيقات الخاص بك.
Comments (0)
Be the first to comment!