SMS Codierung - warum eine SMS 70 oder 160 Zeichen lang ist


Wer beim Schreiben eines SMS am Mobiltelefon schon mal in der Situation war ein Zeichen nicht gefunden zu haben, zugegeben es kommt selten vor, fragt normal nicht nach dem Grund - wer hingegen ein SMS über ein B2B Service versendet und trotz kurzem Text auf der Rechnung doppelt so viele Nachrichten auffindet wie geplant waren, schon. Antwort auf diese Fragen liefert idR. die Codierung der SMS-Nachricht.


Weltweit gibt es aktuell zwei dominierende Mobilfunkstandards. Während in Europa Global System for Mobiles (GSM) verwendet wird, setzt die USA bspw. großteils auf Code Division Multiple Access (CDMA), der Rest der Welt teilt sich unter den beiden Standards auf. Der offensichtlichste Unterschied, wobei auch nicht mehr vollkommen gültig, ist die SIM-Karte. CDMA Mobiltelefone müssen vom jeweiligen Mobile Network Operator (MNO) auf eine Whitelist gesetzt werden. Während bei einem Mobiltelefonwechsel im GSM Netz einfach die SIM Karte ins neue Gerät eingelegt wird, muss in CDMA Netzen das neue Mobilfunktelefon vom Netzbetreiber genehmigt werde. Die Short Messages Services entstanden aus dem GSM Standard, CDMA ist später nachgezogen. Hier ist die technische Implementierung allerdings eine andere.


Maximale SMS Länge


In GSM Netzen besteht jede SMS aus 140 Bytes. Ein Byte wiederum besteht aus 8 Bit. In Summe besteht eine SMS somit aus maximal 1.120 Bit. Der Text in der SMS kann auf zwei unterschiedliche Weisen codiert werden. Entweder wird eine 7 Bit Codierung verwendet oder es wird auf eine Unicode (UCS-2) Codierung gesetzt, die 16 Bit und somit 2 Byte pro Zeichen belegt. Die 8 Bit Codierung ist für Textnachrichten irrelevant und wird für binäre Nachrichten wie Bilder, Logos oder Töne verwendet.


7 Bit sind nur mit dem GSM Basiszeichensatz möglich (siehe Tabelle). Dieser wurde später um Standardzeichensatzerweiterung ergänzt. Durch diese 7 Bit Codierung ergibt sich auch, die für uns übliche SMS Länge von 160 Zeichen - 1.120/7 = 160. 7 Bit sind ein effizienter Weg, der auch seinen Tribut zollt, wenn es um "exotischere Zeichen im Zeichensatz geht". Zeichensätze definieren, welche Elemente dargestellt werden können, etwa Buchstaben, Ziffern, Symbole oder Sonderzeichen. Um SMS Texte effizient abbilden zu können, wurde mit dem GSM-Alphabet ein reduzierter Zeichensatz erstellt, der idR ausreichend ist.

Die SMS-Implementierung in CDMA beinhaltet eine variable maximale Länge für SMS, wobei in der Praxis eine Anlehnung an die GSM-Limitierungen stattfindet. Unterschiede in der Länge sind aber je nach MNO vorhanden. Hier wird auch anstatt des GSM Zeichensatzes ein 7-Bit-ASCII Zeichensatz verwendet, alternativ aber auch Unicode.

Die weiteren Ausführungen beziehen sich aufgrund der Relevanz in Europa ausschließlich auf GSM.


Basiszeichensatz


Alle Zeichen des Basiszeichensatzes zählen als ein Zeichen.


@ ? LZ 0 ¡ P ¿ p
£ _ ! 1 A Q a q
$ F " 2 B R b r
¥ G # 3 C S c s
è ? ¤ 4 D T d t
é O % 5 E U e u
ù ? & 6 F V f v
ì ? ' 7 G W g w
ò S ( 8 H X h x
Ç T ) 9 I Y i y
LF ? * : J Z j z
Ø ESC + ; K Ä k ä
ø Æ , < L Ö l ö
CR æ - = M Ñ m ñ
Å ß . > N Ü n ü
å É / ? O § o à

  • LZ: Leerzeichen
  • LF: Zeichenvorschub - Linefeed
  • ESC: Escape Zeichen
  • CR: Wagenrücklauf - Carriage Return

Standardzeichensatzerweiterung


Diese Zeichen erweitern die Tabelle oben, mit dem Unterschied, dass sie doppelt zählen. Ein € Zeichen verbraucht also gleich viel Platz wie zwei Zeichen des Basiszeichensatzes.

|, ^, €, {, }, [, ~, ], \


Sonderfall überlange SMS


Texte mit einer Länge von über 160 Zeichen können auch gemeinsam versendet werden. Solche Nachrichten setzen sich aus einzelnen SMS zusammen, wobei dann nicht die vollen 160 Zeichen pro SMS zur Verfügung stehen. Jedes SMS Segment besteht aus 153 Zeichen für den Text, die verbleibenden 7 Zeichen (49 Bit) werden für den User Data Header (UDH) verwendet. Der UDH belegt in jedem SMS den ersten Bereich der Nachricht und enthält z.B. die Informationen über die Reihenfolge der zusammenhängenden SMS.


Unicode Codierung


UCS-2 unterstützt den kompletten Unicode. Damit wird so gut wie jedes verwendete Textzeichen bzw. Schriftzeichen der industrialisierten Welt einsetzbar. Der Nachteil dabei, durch das belegen von 2 Byte pro Zeichen ergibt sich eine deutliche Limitierung der maximalen SMS Länge auf lediglich 70 Zeichen pro SMS (140 Byte/2 Byte pro Zeichen = 70 Zeichen).


Probleme in der Praxis


Wenn SMS Texte in Textverarbeitungsprogrammen verfasst werden, kommt es häufig zu Codierungsproblemen, wenn der Text aus dieses Programmen in das Versandtool kopiert wird. Zeichen werden bspw von Microsoft Word™ anders interpretiert und übergeben. Ein einfacher Bindestrich wird zum Longdash. Um diese Probleme zu abzufedern, ersetzt websms diesen bspw. durch einen normalen Bindestrich. Nichtsdestotrotz ist beim Schreiben der SMS die Zeichensatzlimitierung im Hinterkopf zu behalten. Ein simples "Heute hat es 30° im Schatten" löst bspw. wegen des ° Zeichens eine UCS-2 Codierung aus, während "Heute hat es 30 Grad Celsius im Schatten" mit 7 Bit codiert werden kann.