# Das Data Coding Scheme (DCS)

> 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.

- Kanonische URL: https://www.broadnet.me/de/reference/data-coding-scheme-dcs
- Sprache: de
- Zuletzt aktualisiert: 2026-07-18
- Herausgeber: BroadNet (https://www.broadnet.me)

Das Data-Coding-Scheme-Byte, das dem Netz mitteilt, wie eine SMS codiert ist: GSM-7 (0x00), 8-bit (0x04), UCS-2 (0x08) plus Nachrichtenklassen (0/Flash bis 3/SIM) aus GSM 03.38.

## 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.

*Gängige data_coding-/DCS-Werte*

| 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.

*DCS-Coding-Gruppen-Struktur (Auswahl)*

| 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.

*SMS-Nachrichtenklassen*

| 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äufige 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.

## Quellen

- [3GPP TS 23.038 — data coding scheme (§4)](https://www.3gpp.org/dynareport/23038.htm)
- [SMPP v3.4 specification — data_coding](https://smpp.org/SMPP_v3_4_Issue1_2.pdf)

## Verwandte Seiten

- [Der GSM-7-Zeichensatz](https://www.broadnet.me/de/reference/gsm7-character-set)
- [UCS-2 und Unicode SMS](https://www.broadnet.me/de/reference/ucs2-unicode-sms)
- [SMPP submit_sm Referenz](https://www.broadnet.me/de/reference/smpp-submit-sm)
- [SMS-Segmentrechner (kostenloses Tool)](https://www.broadnet.me/de/tools/sms-segment-calculator)
- [A2P SMS Produkt](https://www.broadnet.me/de/products/a2p-sms)
