مخطط ترميز البيانات (DCS) حقل بطول بايت واحد — data_coding في SMPP وTP-DCS في GSM — يخبر الشبكة كيف يُرمَّز جسم الرسالة، واختياريًا فئتها. والقيم الثلاث المهمة هي 0x00 (افتراضي GSM-7) و0x04 (ثنائي 8-بت) و0x08 (UCS-2/يونيكود). وتضيف مجموعات الترميز الأعلى سلوك فئة الرسالة والفلاش.
القيم الثلاث التي تستخدمها يوميًا
لمعظم حركة نصوص A2P، يكون DCS إحدى ثلاث قيم. 0x00 يختار أبجدية GSM-7 الافتراضية. و0x04 يختار الثنائي 8-بت (يُستخدم لـ OTA وWAP push وحمولات بيانات أخرى، لا لنصوص بشرية). و0x08 يختار UCS-2 لليونيكود. وضبط القيمة الخاطئة يسبّب تشوّه المحارف وسوء التجزئة، لذا يجب أن يطابق الطريقة التي رمّزت بها short_message فعليًا.
| القيمة | الترميز | استخدام |
|---|---|---|
| 0x00 | الأبجدية الافتراضية GSM-7 | SMS بنص لاتيني قياسي |
| 0x01 | IA5 / ASCII | نادر الاستخدام |
| 0x03 | Latin-1 (ISO-8859-1) | بعض المسارات في أوروبا الغربية |
| 0x04 | ثنائي 8-bit | حمولات ثنائية / OTA / WAP push |
| 0x08 | UCS-2 (UTF-16BE) | Unicode / غير لاتيني / رموز تعبيرية |
مجموعات ترميز GSM 03.38
بايت DCS ليس تعدادًا مسطّحًا — بل يختار النصف الأعلى منه مجموعة ترميز تعيد تفسير البتات الأدنى. تحمل مجموعة ترميز البيانات العامة (0x0X) مؤشّر أبجدية (البتّان 3-2: 00 = GSM-7، 01 = 8-بت، 10 = UCS-2) وعلمَي ضغط وفئة اختياريين. وتُستخدم مجموعة ترميز البيانات/فئة الرسالة (0xFX) لرسائل الفلاش المعروضة فورًا.
| النصف العلوي من البايت (High nibble) | مجموعة | معنى البتات الدنيا |
|---|---|---|
| 0x0X | ترميز البيانات العامة | الأبجدية (GSM-7 / 8 بت / UCS-2)، الضغط، علامة الفئة |
| 0x1X | عام، مع وجود الفئة | كما هو موضح أعلاه مع فئة الرسالة في البتات 1-0 |
| 0xCX | رسالة في الانتظار — تجاهل | مجموعات البريد الصوتي/المؤشرات |
| 0xDX / 0xEX | رسالة في الانتظار — تخزين | مجموعات مؤشرات GSM-7 / UCS-2 |
| 0xFX | ترميز البيانات / فئة الرسائل | الأبجدية في البت 2، والفئة في البتات 1-0 (الوميض = الفئة 0) |
فئات الرسائل
حين يشير DCS إلى فئة رسالة، يختار البتّان 1-0 وجهة استقرارها. الفئة 0 هي رسالة فلاش تُعرَض فورًا على الشاشة دون تخزين. والفئة 1 تستهدف الهاتف (ME)، والفئة 2 بطاقة SIM (SIM Toolkit / OTA)، والفئة 3 طرفية خارجية. ومعظم نصوص A2P لا تحمل فئة؛ ويُستخدم الفلاش (الفئة 0، مثلًا DCS 0xF0 لـ GSM-7) للتنبيهات التي يجب أن تظهر فورًا.
| الفئة | الوجهة | السلوك |
|---|---|---|
| Class 0 | الشاشة | فلاش — يتم عرضه فوراً، ولا يتم تخزينه تلقائياً |
| Class 1 | المعدات المتنقلة (ME) | مخزنة في ذاكرة الهاتف |
| Class 2 | SIM | SIM Toolkit / التهيئة عبر OTA |
| Class 3 | معدات طرفية (TE) | تمت إعادة توجيهها إلى جهاز خارجي |
الأسئلة المتكررة
ما مخطط ترميز البيانات في SMS؟
حقل بطول بايت واحد (data_coding في SMPP وTP-DCS في GSM) يخبر الشبكة كيف يُرمَّز جسم الرسالة — GSM-7 أو 8-بت أو UCS-2 — واختياريًا فئتها. ويجب أن يطابق الطريقة التي رُمِّزت بها الحمولة فعليًا.
أي قيمة data_coding أستخدم لـ GSM-7 مقابل يونيكود؟
استخدم 0x00 لنص أبجدية GSM-7 الافتراضية و0x08 ليونيكود UCS-2. استخدم 0x04 فقط لحمولات ثنائية 8-بت مثل OTA أو WAP push، لا لنص مقروء بشريًا أبدًا.
ما هي رسالة الفلاش؟
رسالة الفلاش رسالة من الفئة 0 تظهر فورًا على شاشة المستلِم دون حفظها في صندوق الوارد. وتُضبَط عبر بتّات فئة الرسالة في DCS (مثلًا 0xF0 لفلاش GSM-7).
لماذا وصلت رسالتي بمحارف مشوّهة؟
غالبًا عدم تطابق DCS: لم تطابق قيمة data_coding الترميز الفعلي لـ short_message. فمثلًا إرسال بايتات UTF-16 بقيمة data_coding بقيمة 0x00 (GSM-7) ينتج تشوّه محارف. اضبط data_coding ليطابق البايتات التي ترسلها.
مواصفات المصدر
تستند هذه الصفحة إلى المعايير المنشورة. يفتح في علامة تبويب جديدة.