Das Data Coding Scheme (DCS) ist ein Ein-Oktett-Feld — data_coding in SMPP, TP-DCS in GSM — das dem Netz mitteilt, wie der Nachrichten-Body codiert ist und optional seine Nachrichtenklasse. Die drei relevanten Werte sind 0x00 (GSM-7-Standard), 0x04 (8-bit-Binär) und 0x08 (UCS-2/Unicode). Höhere Coding-Gruppen ergänzen Nachrichtenklassen- und Flash-Verhalten.
Die drei Werte, die Sie täglich verwenden
Für nahezu allen A2P-Textverkehr ist das DCS einer von drei Werten. 0x00 wählt das GSM-7-Standardalphabet. 0x04 wählt 8-bit-Binär (verwendet für OTA, WAP Push und andere Datennutzlasten, nicht für menschlichen Text). 0x08 wählt UCS-2 für Unicode. Ein falscher Wert verursacht Mojibake und Fehlsegmentierung, daher muss er zu der tatsächlichen Codierung von short_message passen.
| Wert | Kodierung | Verwenden |
|---|---|---|
| 0x00 | GSM-7-Standardalphabet | Standard-SMS mit lateinischem Text |
| 0x01 | IA5 / ASCII | Selten verwendet |
| 0x03 | Latin-1 (ISO-8859-1) | Einige westeuropäische Routen |
| 0x04 | 8-Bit-Binär | Binäre / OTA- / WAP-Push-Payloads |
| 0x08 | UCS-2 (UTF-16BE) | Unicode / nicht-lateinisch / Emoji |
Die GSM-03.38-Coding-Gruppen
Das DCS-Oktett ist keine flache Aufzählung — sein oberes Nibble wählt eine Coding-Gruppe, die die unteren Bits neu interpretiert. Die allgemeine Data-Coding-Gruppe (0x0X) trägt einen Alphabet-Indikator (Bits 3-2: 00 = GSM-7, 01 = 8-bit, 10 = UCS-2) sowie ein optionales Kompressions- und Klassen-Flag. Die Data-Coding-/Nachrichtenklassen-Gruppe (0xFX) wird für Sofortanzeige-„Flash"-Nachrichten verwendet.
| Oberes Nibble | Gruppe | Bedeutung der niedrigen Bits |
|---|---|---|
| 0x0X | Allgemeine Datenkodierung | Alphabet (GSM-7/8-Bit/UCS-2), Komprimierung, Klassen-Flag |
| 0x1X | Allgemein, Klasse vorhanden | Wie oben, jedoch mit der Nachrichtenklasse in den Bits 1-0 |
| 0xCX | Nachricht wartet – verwerfen | Voicemail-/Anzeigegruppen |
| 0xDX / 0xEX | Nachricht wartet – speichern | GSM-7-/UCS-2-Indikatorgruppen |
| 0xFX | Datenkodierung / Nachrichtenklasse | Alphabet in Bit 2, Klasse in Bits 1-0 (Flash = Klasse 0) |
Nachrichtenklassen
Wenn das DCS eine Nachrichtenklasse anzeigt, wählen die Bits 1-0, wo die Nachricht landet. Klasse 0 ist eine „Flash"-SMS, die sofort auf dem Bildschirm angezeigt wird, ohne gespeichert zu werden. Klasse 1 zielt auf das Endgerät (ME), Klasse 2 auf die SIM (SIM Toolkit / OTA) und Klasse 3 auf externe Endgeräte. Die meisten A2P-Texte tragen keine Klasse; Flash (Klasse 0, z. B. DCS 0xF0 für GSM-7) wird für Meldungen genutzt, die sofort erscheinen müssen.
| Klasse | Zielort | Verhalten |
|---|---|---|
| Class 0 | Bildschirm | Flash – wird sofort angezeigt, nicht automatisch gespeichert |
| Class 1 | Mobilgerät (ME) | Im Speicher des Endgeräts gespeichert |
| Class 2 | SIM | SIM Toolkit / OTA-Bereitstellung |
| Class 3 | Endgerät (TE) | Weitergeleitet an externe Geräte |
Häufig gestellte Fragen
Was ist das Data Coding Scheme in SMS?
Es ist ein Ein-Oktett-Feld (data_coding in SMPP, TP-DCS in GSM), das dem Netz mitteilt, wie der Nachrichten-Body codiert ist — GSM-7, 8-bit oder UCS-2 — und optional seine Nachrichtenklasse. Es muss zu der tatsächlichen Codierung der Nutzlast passen.
Welchen data_coding-Wert verwende ich für GSM-7 vs. Unicode?
Verwenden Sie 0x00 für GSM-7-Standardalphabet-Text und 0x08 für UCS-2-Unicode. Verwenden Sie 0x04 nur für 8-bit-Binärnutzlasten wie OTA oder WAP Push, niemals für menschenlesbaren Text.
Was ist eine Flash-SMS?
Eine Flash-SMS ist eine Klasse-0-Nachricht, die sofort auf dem Bildschirm des Empfängers erscheint, ohne im Posteingang gespeichert zu werden. Sie wird über die Nachrichtenklassen-Bits des DCS gesetzt (zum Beispiel 0xF0 für GSM-7-Flash).
Warum kam meine Nachricht als verstümmelte Zeichen an?
Fast immer eine DCS-Nichtübereinstimmung: Der data_coding-Wert passte nicht zur tatsächlichen Codierung von short_message. Zum Beispiel erzeugt das Senden von UTF-16-Bytes mit data_coding 0x00 (GSM-7) Mojibake. Setzen Sie data_coding passend zu den gesendeten Bytes.
Quellenspezifikationen
Diese Seite basiert auf den veröffentlichten Standards. (Wird in einem neuen Tab geöffnet.)