So wird die Länge einer SMS berechnet
Eine SMS transportiert 140 Oktette (1.120 Bit) Nutzdaten. Im GSM-7-Standardalphabet belegt jedes Zeichen 7 Bit, daher passen 160 Zeichen in 140 Oktette. In UCS-2, der 16-Bit-Unicode-Kodierung für SMS, belegt jedes Zeichen 2 Oktette; derselbe Platz fasst also 70 Zeichen.
Ist eine Nachricht länger als eine SMS, wird sie als verkettete SMS gesendet. Jeder Teil beginnt mit einem 6 Oktette großen User Data Header (UDH) mit Referenznummer, Gesamtzahl der Teile und Position des Teils, damit das Telefon die Nachricht zusammensetzen kann. Pro Teil bleiben 134 Oktette: 153 GSM-7-Zeichen oder 67 UCS-2-Zeichen.
Der Empfänger sieht eine Nachricht, doch Netzbetreiber und Anbieter berechnen jeden Teil. Eine GSM-7-Nachricht mit 161 Zeichen kostet zwei SMS, ebenso eine arabische Nachricht mit 71 Zeichen.
- GSM-7: 160 Zeichen in einer SMS, 153 pro Teil bei Verkettung (306 bei 2 Teilen, 459 bei 3).
- UCS-2: 70 Zeichen in einer SMS, 67 pro Teil bei Verkettung (134 bei 2 Teilen, 201 bei 3).
- Ein einziges Nicht-GSM-Zeichen an beliebiger Stelle schaltet die gesamte Nachricht auf UCS-2.
Das GSM-7-Alphabet und seine Erweiterungstabelle
Das GSM-7-Standardalphabet ist in 3GPP TS 23.038 (ursprünglich GSM 03.38) festgelegt. Die Basistabelle hat 128 Positionen: lateinische Buchstaben und Ziffern, gängige Satzzeichen sowie Zeichen wie @ £ $ ¥ è é ù ì ò Ç Ø ø Å å Ä Ö Ñ Ü ä ö ñ ü à ß Æ æ É ¿ ¡ § und die griechischen Großbuchstaben Δ Φ Γ Λ Ω Π Ψ Σ Θ Ξ. Zeilenvorschub und Wagenrücklauf zählen ebenfalls als ein Zeichen. Deutsche Umlaute und ß sind also unproblematisch.
Zehn weitere Zeichen stehen in der Erweiterungstabelle und werden über ein Escape-Zeichen erreicht; jedes kostet daher zwei Septette: das Eurozeichen €, das Zirkumflex ^, geschweifte Klammern { }, eckige Klammern [ ], die Tilde ~, der senkrechte Strich |, der Backslash \ und der Seitenvorschub. Eine Nachricht aus 158 Buchstaben und einem € hat genau 160 Septette; ein Buchstabe mehr ergibt zwei Segmente.
Eine Escape-Sequenz muss in einem Teil bleiben. Ein Zwei-Septett-Zeichen, das die Grenze von 153 Septetten überschreiten würde, rückt deshalb in den nächsten Teil. Dieser Zähler wendet die Regel an; daher kann ein Teil bei 152 enden.
TS 23.038 definiert außerdem nationale Shift-Tabellen (etwa für Türkisch, Spanisch, Portugiesisch und mehrere indische Schriften), mit denen manche Nachrichten in 7 Bit bleiben. Die Unterstützung hängt von Netz und Endgerät ab, daher nutzen die meisten Plattformen und auch dieser Zähler nur das Standardalphabet.
Zeichen, die Ihre SMS unbemerkt auf Unicode umstellen
Die meisten überraschenden 70-Zeichen-Nachrichten entstehen durch Text aus Textverarbeitung, CMS oder Smartphone-Tastatur, die automatisch typografische Zeichen einsetzen. Sie sehen ihren GSM-7-Entsprechungen fast gleich, sind aber andere Codepoints.
Akzentbuchstaben, die nicht in der Tabelle stehen, etwa á í ó ú â ê ã õ und das kleine ç, erzwingen ebenfalls UCS-2. Ersetzen Sie sie nur, wenn Ihre Zielgruppe die Schreibweise ohne Akzent akzeptiert.
- Typografische Anführungszeichen und Apostrophe „ “ ” ‘ ’ » « (verwenden Sie ' und ").
- Halbgeviert- und Geviertstriche – — (verwenden Sie -) sowie die Auslassungspunkte … (verwenden Sie ...).
- Geschützte und schmale Leerzeichen, nach dem Kopieren oft unsichtbar (verwenden Sie ein normales Leerzeichen).
- Nullbreiten-Zeichen und Byte-Order-Marks, die sich in Vorlagen verstecken (entfernen).
- Emoji: die meisten belegen 2 UCS-2-Einheiten, Flaggen und Emoji mit Hautton 4, Familien-Sequenzen 8 oder mehr.
Eine Nachricht mit einem Klick in GSM-7 umwandeln
Ist eine Nachricht in Unicode, schreibt die Schaltfläche In GSM-7 umwandeln sie nur dort mit GSM-7-Zeichen neu, wo das gefahrlos geht: Typografische Anführungszeichen und Striche werden zu einfachen, unsichtbare Leerzeichen werden entfernt, Akzente, die GSM-7 nicht kennt, entfallen (á → a, ê → e), und Ligaturen und Symbole werden ausgeschrieben (œ → oe, ™ → TM). Zeichen, die bereits in GSM-7 enthalten sind, etwa ä, ö, ü, ß, é und €, bleiben erhalten.
Das Tool listet jede Änderung, zeigt die Segmentzahl vorher und nachher, und Rückgängig stellt Ihren Originaltext wieder her. Arabisch lässt sich nicht umwandeln: Eine arabische Nachricht bleibt immer Unicode mit 70 Zeichen pro SMS, kürzen Sie sie also oder senden Sie sie per WhatsApp. Emoji und andere nicht-lateinische Schriften bleiben ebenfalls unverändert.
Arabische SMS: 70 Zeichen, 67 pro Teil
Arabische Buchstaben gehören nicht zu GSM-7, daher wird jede arabische SMS in UCS-2 gesendet: 70 Zeichen in einer Einzel-SMS und 67 pro Teil bei längeren Nachrichten. Eine arabische Nachricht mit 140 Zeichen ergibt drei berechnete Segmente, nicht zwei, denn 140 ist mehr als 2 × 67 = 134.
Jeder Codepoint zählt: Leerzeichen, eingestreute lateinische Buchstaben, arabisch-indische Ziffern und diakritische Zeichen (Taschkil). Ein vollständig vokalisiertes Wort kann doppelt so viele Einheiten belegen wie dasselbe Wort ohne Harakat; verzichten Sie in Transaktionsnachrichten darauf, sofern sie keine Mehrdeutigkeit auflösen.
Für OTPs und Benachrichtigungen in den Golfstaaten sollten Sie den arabischen Text möglichst unter 70 Zeichen halten, den Code früh platzieren und Emoji vermeiden. Dieselbe Nachricht auf Englisch darf zum gleichen Preis mehr als doppelt so lang sein.
Von Segmenten zu Kosten
Ihre monatliche SMS-Rechnung hängt von Segmenten ab, nicht von Nachrichten: Segmente pro Nachricht × Nachrichten pro Monat × Preis für das Zielnetz. Wer eine Kampagne von 2 Segmenten auf 1 kürzt, halbiert die Kosten jedes Versands.
Prüfen Sie den finalen Text mit ausgefüllten Variablen. Ein Kundenname, eine Bestellnummer oder ein Kurzlink kann eine Grenze überschreiten, und Namen auf Arabisch oder mit Akzenten können eine GSM-7-Vorlage nur für einen Teil der Empfänger auf UCS-2 umstellen.
- Testen Sie für jeden Platzhalter die längsten realistischen Werte.
- Kürzen Sie Links und entfernen Sie Leerzeichen und Leerzeilen am Ende.
- Setzen Sie lieber auf eine klare Handlungsaufforderung als auf lange mehrteilige Nachrichten.
