UCS-2 ist die 16-Bit-Codierung, die SMS für jeden Text mit Zeichen außerhalb des GSM-7-Alphabets verwendet — nicht-lateinische Schriften, Emojis, typografische Anführungszeichen. Jedes Zeichen belegt zwei Oktette, sodass eine einzelne UCS-2-SMS 70 Zeichen fasst und verkettete Segmente je 67. Ein einziges Nicht-GSM-7-Zeichen erzwingt die gesamte Nachricht auf UCS-2.
Warum SMS UCS-2 benötigt
GSM-7 deckt nur 128 Zeichen plus einen kleinen Erweiterungssatz ab. Alles andere — Arabisch, Chinesisch, Kyrillisch, Hebräisch, Thai, Emojis und selbst typografische Zeichen wie geschwungene Anführungszeichen und Halbgeviertstriche — ist nicht darstellbar. Dafür schaltet SMS auf UCS-2, eine Codierung mit fester Breite von 16 Bit (effektiv UTF-16 Big-Endian für die Basic Multilingual Plane). Signalisiert wird sie durch data_coding 0x08.
Kapazität: 70 und 67
Das SMS-Nutzdatenfeld umfasst 140 Oktette. Bei zwei Oktetten je Zeichen fasst UCS-2 70 Zeichen in einer einzelnen Nachricht. Ist eine Nachricht verkettet, verbraucht der 6-Byte-User-Data-Header Nutzlast, sodass 134 Oktette bleiben — 67 Zeichen je Segment. Das ist weniger als die Hälfte der GSM-7-Kapazität, weshalb die Codierungswahl große Kostenauswirkungen hat.
| Kodierung | Einzelnes SMS | Pro verkettetem Segment |
|---|---|---|
| GSM-7 (7-bit) | 160 Zeichen | 153 Zeichen |
| 8-Bit-Binär | 140 Bytes | 134 Bytes |
| UCS-2 (16-bit) | 70 Zeichen | 67 Zeichen |
Was UCS-2 auslöst
Die Codierung gilt je Nachricht ganz oder gar nicht: Ein einziges Zeichen außerhalb von GSM-7 erzwingt die gesamte Nachricht auf UCS-2 und senkt die Kapazität von 160 auf 70. Häufige Auslöser sind leicht versehentlich einzubringen — ein geschwungener Apostroph aus einer Textverarbeitung, ein Geviertstrich, ein Emoji oder ein nicht-lateinischer Name. Diese vor dem Senden zu erkennen, ist der größte Hebel auf die SMS-Kosten.
| Kategorie | Beispiele |
|---|---|
| Emoji | 😀 ✅ 🚀 ❤️ |
| Typografische Zeichensetzung | ' ' “ ” – — … |
| Nicht-lateinische Skripte | العربية · 中文 · Кириллица · עברית · ไทย |
| Buchstaben mit Akzent, die nicht in GSM-7 enthalten sind | â ê î ô û ã õ ą ę ř |
Der Surrogatpaar-Vorbehalt
UCS-2 ist strikt 16-Bit und deckt die Unicode Basic Multilingual Plane ab. Zeichen oberhalb von U+FFFF — etwa viele moderne Emojis — werden in UTF-16 als Surrogatpaare aus zwei 16-Bit-Codeeinheiten dargestellt, sodass ein einzelnes solches Emoji vier Oktette (zwei UCS-2-„Zeichen") verbraucht. Eine Nachricht, die wie ein Emoji aussieht, kann daher als zwei auf das Limit von 70/67 zählen.
Häufig gestellte Fragen
Wie viele Zeichen passen in eine Unicode-SMS?
70 Zeichen in einer einzelnen UCS-2-Nachricht und 67 je Segment, wenn die Nachricht verkettet ist. Das liegt daran, dass jedes Zeichen 16 Bit (zwei Oktette) gegen das 140-Oktett-SMS-Nutzdatenlimit belegt.
Was lässt eine SMS auf UCS-2 umschalten?
Jedes einzelne Zeichen außerhalb des GSM-7-Alphabets — ein Emoji, ein typografisches Anführungszeichen, ein Geviertstrich oder nicht-lateinischer Text — erzwingt die gesamte Nachricht auf UCS-2. Die Codierung wird je Nachricht gewählt, nicht je Zeichen.
Ist UCS-2 dasselbe wie UTF-16?
Fast. UCS-2 ist fest 16-Bit und deckt die Basic Multilingual Plane ab. SMS behandelt die Nutzlast als UTF-16 Big-Endian, sodass Zeichen oberhalb von U+FFFF (viele Emojis) zu Surrogatpaaren werden und vier Oktette belegen.
Warum zählt ein Emoji manchmal als zwei Zeichen?
Emojis oberhalb von U+FFFF werden als UTF-16-Surrogatpaare codiert — zwei 16-Bit-Codeeinheiten — sodass ein einzelnes Glyph zwei der 70 (oder 67) verfügbaren UCS-2-Zeichenplätze verbraucht.
Wie vermeide ich versehentliches Senden von UCS-2?
Bereinigen Sie die Eingabe vor dem Senden: Ersetzen Sie typografische Anführungszeichen und Striche durch ihre ASCII-Entsprechungen, entfernen oder transliterieren Sie vereinzelte Akzente und prüfen Sie auf Emojis. Ein GSM-7/Unicode-Prüfer markiert die genauen Zeichen, die UCS-2 erzwingen.
Quellenspezifikationen
Diese Seite basiert auf den veröffentlichten Standards. (Wird in einem neuen Tab geöffnet.)