← Retour au Blog
Guide

Limite de Caractères SMS : GSM-7, Unicode, Segments

Limites de Caractères SMS Expliquées : GSM-7, Unicode et Segments

Réponse rapide : Un SMS transporte 160 caractères en encodage GSM-7 ou 70 caractères en Unicode (UCS-2). Les textes plus longs sont découpés en segments de 153 ou 67 caractères respectivement — facturés par segment. Un seul emoji ou guillemet typographique bascule tout le message en Unicode, réduisant la capacité de 56% et triplant souvent le coût.

Les limites de caractères semblent anecdotiques jusqu'à ce qu'on les multiplie par un million de messages. Une campagne qui passe silencieusement d'un segment à deux double son budget. Voici exactement comment fonctionne l'arithmétique de l'encodage, et comment la maîtriser.

Pourquoi la Limite du SMS Est-elle de 160 Caractères ?

Le SMS voyage dans la capacité résiduelle des trames de signalisation GSM : 140 octets (1 120 bits) par message. Le nombre de caractères qui tiennent dans 1 120 bits dépend entièrement du nombre de bits par caractère :

EncodageBits par caractèreSMS simplePar segment (multipartie)
GSM-77160153
UCS-2 (Unicode)167067

Le GSM-7 compresse chaque caractère sur 7 bits en ne supportant qu'un alphabet fixe de 128 caractères (plus une table d'extension). L'UCS-2 supporte pratiquement toutes les écritures et symboles, mais à 16 bits par caractère — d'où la chute de 160 à 70.

Quels Caractères Contient l'Alphabet GSM-7 ?

Le GSM-7 couvre :

  • Les lettres latines A–Z, a–z et les chiffres 0–9
  • La ponctuation courante : . , ! ? : ; ' " ( ) + - * / = % & # @
  • Un ensemble de lettres accentuées (é, ü, ñ, à, ö et d'autres) et les capitales grecques
  • Des symboles monétaires dont l'euro et la livre

Le piège de la table d'extension : quelques caractères — crochets, accolades, antislash, circonflexe isolé, barre verticale, tilde isolé et le symbole euro — sont dans le GSM-7 mais coûtent deux caractères chacun, car encodés comme échappement plus code.

Qu'est-ce Qui Bascule un Message en Unicode en Silence ?

Tout ce qui sort du GSM-7 force le message entier en UCS-2 — un seul caractère suffit. Les suspects habituels :

  • La ponctuation typographique collée depuis Word ou Google Docs : guillemets courbes, apostrophes courbes, tirets cadratins, points de suspension en un caractère
  • Les emojis — tous
  • Les écritures non latines : chinois, japonais, coréen, arabe, hébreu, thaï, l'essentiel du cyrillique
  • Les caractères invisibles : espaces insécables, liants sans chasse issus du copier-coller

Le cas le plus cruel est l'apostrophe courbe : quasi identique visuellement à l'apostrophe droite ASCII, mais elle transforme un message de 160 caractères en envoi Unicode de 3 segments.

Comment Fonctionne la Concaténation des Messages ?

Quand un message dépasse la limite, il est découpé en parties portant chacune un en-tête de données utilisateur (UDH) — 6 octets qui disent au téléphone récepteur « ceci est la partie 2 sur 3 ». Cet en-tête consomme de la charge utile, d'où la baisse de capacité par segment :

Longueur du message (GSM-7)SegmentsMessages facturés
1–160 caractères11
161–306 caractères22
307–459 caractères33
460–612 caractères44

Pour l'Unicode, les seuils sont 70, puis 134, 201, 268. Le téléphone réassemble les parties en une seule bulle — l'utilisateur ne voit jamais le découpage, mais votre facture, si : chaque segment est facturé comme un message complet.

Combien Coûtent Réellement les Erreurs d'Encodage ?

Prenez un message promotionnel de 155 caractères vers 500 000 destinataires à 0,01 $ le segment :

  • GSM-7 propre : 1 segment × 500 000 = 5 000 $
  • Même texte avec un emoji : segments Unicode de 70 caractères → 3 segments × 500 000 = 15 000 $

Un caractère, 10 000 dollars d'écart. C'est la fuite budgétaire silencieuse la plus courante du marketing SMS — et elle est entièrement évitable.

Comment Garder les Messages en Un Segment ? (6 Règles)

  1. Connaissez votre vraie limite. 160 en GSM-7, 70 en Unicode. Si votre audience exige une écriture non latine, calibrez les textes sur 70/67 dès le départ.
  2. Supprimez la ponctuation typographique. Normalisez guillemets, apostrophes et tirets en ASCII avant l'envoi. Automatisez-le dans votre pipeline — les humains collent depuis Word.
  3. Traitez l'emoji comme une option payante. En marketing, il peut rentabiliser son coût par l'engagement ; dans les OTP et alertes, c'est du gaspillage pur.
  4. Surveillez la table d'extension. Crochets, accolades, tilde, circonflexe, barre verticale et symbole euro comptent double en GSM-7.
  5. Vérifiez le nombre de segments dans la réponse API. Les bons fournisseurs renvoient l'encodage et le nombre de segments par message — alertez quand le compte d'un modèle change.
  6. Attention aux URL et à la personnalisation. Un lien long ou un prénom inhabituellement long peut pousser un modèle limite dans le segment suivant. Gardez 10–15 caractères de marge.

Cela S'applique-t-il au RCS ou à WhatsApp ?

Non — RCS, WhatsApp et les autres canaux IP n'utilisent ni l'encodage GSM ni les trames de 140 octets : pas de limite de 160 caractères ni de facturation par segment. Mais chaque campagne RCS ou canal riche a besoin d'un repli SMS, et ce texte de repli obéit à toutes les règles de ce guide.

L'API ViteMobile renvoie l'encodage et le nombre de segments de chaque message, et le tableau de bord signale les modèles dont le compte dérive — pour qu'un guillemet courbe collé soit repéré avant de se multiplier sur un million d'envois.

Points Clés

  • Un SMS = 140 octets : 160 caractères GSM-7 ou 70 Unicode. Les segments multiparties contiennent 153/67.
  • Un seul caractère hors GSM — un emoji, un guillemet courbe — bascule tout le message en Unicode et peut tripler le coût.
  • Certains caractères GSM-7 (crochets, euro, tilde) comptent silencieusement double.
  • Normalisez la ponctuation automatiquement, gardez de la marge pour la personnalisation et surveillez le nombre de segments par modèle en production.

Foire Aux Questions

Q : Combien de caractères un SMS peut-il contenir ? R : 160 en GSM-7, 70 en Unicode. Au-delà, découpage en segments de 153 (GSM-7) ou 67 (Unicode), chacun facturé comme un message.

Q : Pourquoi mon SMS a-t-il été découpé en plusieurs messages ? R : Il a dépassé la limite, ou un caractère spécial l'a basculé en Unicode. Les en-têtes de concaténation réduisent chaque partie à 153/67 caractères, chacune facturée séparément.

Q : Les emojis comptent-ils comme plusieurs caractères ? R : Oui — tout emoji force le message entier en Unicode (limite 70) et la plupart occupent deux unités de code. Un emoji peut transformer 1 segment en 3.

Q : Quels caractères cassent le GSM-7 ? R : Guillemets et apostrophes courbes, tirets cadratins, points de suspension en un caractère, espaces insécables et toute écriture non latine. Crochets, accolades et euro restent GSM-7 mais comptent double.

Q : Comment garder mon SMS en un segment ? R : Comptez contre la bonne limite, normalisez automatiquement la ponctuation en ASCII, évitez les emojis dans le transactionnel, gardez de la marge pour la personnalisation et surveillez le nombre de segments renvoyé par votre API.