Blog/14 mai 2026·9 min de lecture

Limites de Caractères SMS : GSM-7 vs UCS-2

Un seul SMS fait 160 caractères en GSM-7, ou 70 caractères en UCS-2. L'encodage choisi par l'opérateur dépend automatiquement du contenu : si chaque caractère est dans l'alphabet GSM-7 par défaut, tu obtiens 160. Si même un seul caractère sort, tout le message est ré-encodé en UCS-2 et la limite tombe à 70.

Au-delà de 160 / 70, le message est découpé en segments concaténés. Chaque segment porte un en-tête de 6 octets pour permettre le réassemblage, donc les SMS multi-segments utilisent seulement 153 caractères (GSM-7) ou 67 (UCS-2) par segment. Les opérateurs facturent au segment, ce qui explique pourquoi un seul emoji dans un envoi de 200 caractères peut discrètement transformer un message 1 segment en 4 segments.

Tableau Récapitulatif

ScénarioLimiteNotes
SMS unique, GSM-7160 car.Latin simple, pas d'emoji
SMS unique, UCS-270 car.Tout caractère non-GSM-7 force ce mode
Segment concaténé, GSM-7153 car.UDH 6 octets prend 7 car. par segment
Segment concaténé, UCS-267 car.UDH 6 octets prend 3 car. par segment
iMessage / RCS / WhatsApp20 000+ car.Pas du SMS. Autres règles

GSM-7 : Le Standard 160 Caractères

GSM-7 est l'encodage SMS par défaut défini par la norme GSM 03.38. Il emballe 7 bits par caractère, c'est ainsi que 160 caractères tiennent dans la charge utile SMS de 1 120 bits (140 octets). L'alphabet a 128 caractères de base plus une table d'extension de 10 caractères. Tout ce qui sort de ces 138 force l'UCS-2.

L'alphabet de base couvre les lettres latines non accentuées (A-Z, a-z), les chiffres 0-9, la ponctuation courante, l'espace, et un petit ensemble de lettres accentuées européennes (à, è, ì, ò, ù, é, ñ, Ç, ä, ö, ü, ß).

UCS-2 : Quand Tu es Forcé à 70 Caractères

UCS-2 est un encodage Unicode 16 bits (2 octets). La même charge utile SMS de 140 octets contient 70 unités UCS-2 par segment, ou 67 une fois concaténé. Les opérateurs basculent en UCS-2 dès qu'un seul caractère sort de GSM-7. Pas de conversion partielle.

Les déclencheurs UCS-2 les plus courants sont des caractères auxquels la plupart ne pensent pas : les guillemets courbes que Word et macOS substituent aux droits, les tirets cadratin et demi-cadratin, le caractère ellipse, chaque emoji, et tout script non-latin.

SMS Concaténés : Pourquoi 153 / 67 ?

Quand un message dépasse la limite mono-SMS, il est découpé et chaque segment est envoyé comme un SMS séparé sur le réseau. Pour permettre le réassemblage, chaque segment porte un User Data Header (UDH) de 6 octets avec numéro de référence, nombre total de segments et position.

L'UDH consomme 7 caractères en GSM-7, réduisant de 160 à 153 par segment. En UCS-2, c'est 3 unités, faisant tomber 70 à 67 par segment.

Le Coût Réel des SMS Multi-Segments

Presque toutes les API SMS commerciales facturent par segment, pas par message. Coût total = segments par message × destinataires × tarif par segment. Là où ça se complique, c'est le piège d'encodage : une campagne écrite avec des guillemets courbes double silencieusement son compte de segments.

Aux tarifs Twilio US, une promo de 200 caractères à 100 000 destinataires en GSM-7 pur fait 2 segments × 100 000 × 0,0079 $ = 1 580 $. Le même texte avec deux guillemets typographiques bascule en UCS-2, devient 3 segments, et coûte 2 370 $.

Caractères Qui Forcent l'UCS-2

  • Guillemets courbes : Word, Pages et macOS remplacent automatiquement les droits par des courbes.
  • Tirets cadratin et demi-cadratin : tous deux forcent l'UCS-2. Utilise un trait d'union ASCII avec espaces.
  • Caractère ellipse : le caractère unique « ... » est UCS-2. Trois points ASCII sont GSM-7 et visuellement identiques.
  • Tous les emojis : chaque emoji force UCS-2 et la plupart coûtent 2 de tes 70 caractères.
  • Scripts non-latins : cyrillique, grec minuscule, arabe, hébreu, thaï, chinois, japonais, coréen.
  • Lettres accentuées hors GSM-7 : Ş, Č, Ł et d'autres.

iMessage / RCS / WhatsApp : Quand les Limites ne S'appliquent Pas

  • iMessage : limite souple autour de 20 000 caractères. Pas de GSM-7 / UCS-2.
  • RCS : successeur du SMS. Pas de limite fixe (typiquement 8 000-20 000).
  • WhatsApp : 65 536 caractères par message, pas de segmentation.
  • Telegram, Signal, Messenger : tous quasi-illimités.

Comment Réduire le Coût SMS

  • Utilise du pur ASCII. Retire guillemets typographiques, tirets fantaisistes et ellipse.
  • Saute les emojis sauf s'ils méritent un clic.
  • Garde le SMS promo sous 160 caractères.
  • Raccourcis les liens. Une URL https avec UTM peut bouffer 70+ caractères.
  • Compte avant d'envoyer. Utilise le Compteur de Caractères.

Compte ta longueur SMS et tes segments instantanément.

Ouvrir le Compteur

Guides Associés

Frequently Asked Questions

Un seul SMS contient 160 caractères en GSM-7, l'alphabet 7 bits par défaut pour le texte latin simple. Si ton message inclut un caractère hors de cet alphabet (la plupart des emojis, guillemets typographiques, lettres accentuées, cyrillique, CJK, etc.), l'opérateur bascule en UCS-2 (Unicode 16 bits) et la limite mono-segment tombe à 70 caractères.

Dès que tu dépasses 160 caractères GSM-7 ou 70 UCS-2, le message est découpé en segments concaténés. Chaque segment porte un en-tête UDH de 6 octets pour que le téléphone destinataire puisse réassembler les morceaux, c'est pourquoi les segments concaténés font 153 caractères GSM-7 ou 67 UCS-2 au lieu des 160 / 70 complets.

Visuellement il semble être un caractère, mais chaque emoji force le message entier en encodage UCS-2. La plupart des emojis comptent aussi pour 2 unités UCS-2 (paire de substitution), donc un seul emoji peut consommer 4 de tes 70 caractères. Ajouter un emoji à un message de 100 caractères GSM peut transformer un envoi 1 segment en envoi 2 segments.

GSM-7 est un encodage 7 bits avec environ 128 caractères de base plus 10 caractères d'extension, optimisé pour le texte latin simple. UCS-2 est l'encodage Unicode 16 bits utilisé dès qu'un message contient un caractère hors de l'alphabet GSM-7. GSM-7 tient 160 caractères par segment ; UCS-2 en tient 70.

Presque toutes les API SMS et opérateurs facturent par segment, pas par message. Un message GSM de 320 caractères fait 3 segments (153 + 153 + 14) et est facturé 3. Un message de 71 caractères avec un emoji est aussi 2 segments car l'emoji force l'UCS-2 et te pousse au-delà de 70. Le tarif Twilio US sortant tourne autour de 0,0079 $ par segment.

iMessage, RCS et WhatsApp ne sont pas du SMS. Ils passent par les données, pas par le canal SMS 160 / 70, et ont des limites pratiques de plusieurs dizaines de milliers de caractères (iMessage est environ 20 000). Les règles GSM-7 / UCS-2 ne s'appliquent que lorsque le message bascule en SMS.

Tout emoji, guillemets courbes/typographiques (ceux que Word et macOS substituent automatiquement), tirets cadratin et demi-cadratin, ellipse en un caractère, lettres accentuées hors table d'extension GSM, et tout caractère cyrillique, grec, arabe, hébreu ou CJK. Même un seul dans un message de 200 caractères fait tomber la limite par segment à 67 et peut doubler ton coût.