BroadNet
Encodage SMSCodage des données

Le schéma de codage des données (DCS)

Mis à jour le 3 min de lectureFondé sur des normes
Réponse directe

Le schéma de codage des données (DCS) est un champ d'un octet — data_coding en SMPP, TP-DCS en GSM — qui indique au réseau comment le corps du message est encodé et, optionnellement, sa classe de message. Les trois valeurs qui comptent sont 0x00 (défaut GSM-7), 0x04 (binaire 8 bits) et 0x08 (UCS-2/Unicode). Les groupes de codage supérieurs ajoutent la classe de message et le comportement flash.

§01

Les trois valeurs d'usage quotidien

Pour la quasi-totalité du trafic texte A2P, le DCS vaut l'une de trois valeurs. 0x00 sélectionne l'alphabet par défaut GSM-7. 0x04 sélectionne le binaire 8 bits (utilisé pour l'OTA, le WAP push et d'autres charges de données, pas le texte humain). 0x08 sélectionne l'UCS-2 pour l'Unicode. Une mauvaise valeur produit du mojibake et une segmentation erronée ; elle doit donc correspondre à la façon dont vous avez réellement encodé short_message.

Valeurs courantes de data_coding / DCS
ValeurEncodageUtiliser
0x00Alphabet par défaut GSM-7SMS en texte latin standard
0x01IA5 / ASCIIRarement utilisé
0x03Latin-1 (ISO-8859-1)Quelques routes d'Europe occidentale
0x04Binaire 8 bitsCharges utiles binaires / OTA / WAP push
0x08UCS-2 (UTF-16BE)Unicode / non latin / emoji
§02

Les groupes de codage de GSM 03.38

L'octet DCS n'est pas une énumération plate — son quartet de poids fort sélectionne un groupe de codage qui réinterprète les bits de poids faible. Le groupe général de codage des données (0x0X) porte un indicateur d'alphabet (bits 3-2 : 00 = GSM-7, 01 = 8 bits, 10 = UCS-2) ainsi qu'un indicateur optionnel de compression et de classe. Le groupe codage/classe de message (0xFX) sert aux messages « flash » à affichage immédiat.

Structure des groupes de codage du DCS (sélection)
Quartet de poids fortGroupeSignification des bits de poids faible
0x0XCodage général des donnéesAlphabet (GSM-7/8 bits/UCS-2), compression, indicateur de classe
0x1XGénéral, classe présenteComme ci-dessus avec la classe de message en bits 1-0
0xCXMessage en attente — rejeterGroupes de messagerie vocale/indicateurs
0xDX / 0xEXMessage en attente — stockerGroupes indicateurs GSM-7 / UCS-2
0xFXCodage des données / classe de messageAlphabet au bit 2, classe dans les bits 1-0 (flash = classe 0)
§03

Classes de message

Lorsque le DCS indique une classe de message, les bits 1-0 sélectionnent où le message atterrit. La classe 0 est un SMS « flash » affiché immédiatement à l'écran sans être stocké. La classe 1 vise le combiné (ME), la classe 2 la SIM (SIM Toolkit / OTA), et la classe 3 un équipement terminal externe. La plupart des textes A2P ne portent pas de classe ; le flash (classe 0, par ex. DCS 0xF0 pour le GSM-7) sert aux alertes devant apparaître instantanément.

Classes de message SMS
ClasseDestinationComportement
Class 0ÉcranFlash — affichage immédiat, non enregistré automatiquement
Class 1Équipement mobile (ME)Stocké dans la mémoire du terminal
Class 2SIMSIM Toolkit / provisionnement OTA
Class 3Équipement terminal (TE)Transmis à un équipement externe
FAQ

Questions fréquemment posées

Qu'est-ce que le schéma de codage des données dans le SMS ?

C'est un champ d'un octet (data_coding en SMPP, TP-DCS en GSM) qui indique au réseau comment le corps du message est encodé — GSM-7, 8 bits ou UCS-2 — et optionnellement sa classe de message. Il doit correspondre à l'encodage réel de la charge utile.

Quelle valeur de data_coding pour le GSM-7 vs l'Unicode ?

Utilisez 0x00 pour le texte en alphabet par défaut GSM-7 et 0x08 pour l'UCS-2 Unicode. N'utilisez 0x04 que pour les charges binaires 8 bits comme l'OTA ou le WAP push, jamais pour du texte lisible.

Qu'est-ce qu'un SMS flash ?

Un SMS flash est un message de classe 0 qui apparaît immédiatement à l'écran du destinataire sans être enregistré dans la boîte de réception. Il se règle via les bits de classe de message du DCS (par exemple 0xF0 pour un flash GSM-7).

Pourquoi mon message est-il arrivé en caractères illisibles ?

Presque toujours une incohérence de DCS : la valeur data_coding ne correspondait pas à l'encodage réel de short_message. Par exemple, envoyer des octets UTF-16 avec data_coding 0x00 (GSM-7) produit du mojibake. Réglez data_coding pour qu'il corresponde aux octets que vous envoyez.

Références

Spécifications sources

Les normes publiées sur lesquelles repose cette page. S'ouvre dans un nouvel onglet.

BNMaintenu par l'équipe d'ingénierie BroadNet·Messagerie de qualité opérateur depuis 2003
Placez-le sur le fil

Conçu avec une véritable liaison SMPP et une API REST.

Demandez un accès de test avec de véritables clés de test : envoyez d’abord à votre propre numéro vérifié, puis passez en production dans plus de 200 pays une fois que votre identité d’expéditeur et vos routes seront approuvées.