SMS

Was ist GSM-7- vs. UCS-2-Encoding?

GSM-7 fasst mit einem begrenzten Alphabet mehr Text pro Segment; UCS-2 unterstützt mehr Zeichen, lässt aber weniger Platz pro Segment.

Ein typografischer Apostroph kann den Preis einer Nachricht ändern, die sonst nur gewöhnliche lateinische Buchstaben enthält. Das Telefon zeigt nahezu denselben Satz an. Bird braucht aber mehr Netzwerksegmente, um ihn zu senden.

Was sind die beiden Encodings?

GSM-7 verwendet ein kompaktes Alphabet, während UCS-2 Zeichen außerhalb dieses Alphabets darstellt.

Gewöhnliche lateinische Buchstaben, Ziffern, gängige Satzzeichen und einige Buchstaben mit Akzent passen in GSM-7. Die SMS-Alphabetspezifikation definiert diesen Zeichensatz.

UCS-2 überträgt Zeichen außerhalb dieses Satzes, darunter typografische Anführungszeichen und Emoji. Manche Emoji zählen doppelt für das Zeichenlimit.

Chinesischer, japanischer, koreanischer, kyrillischer, arabischer, thailändischer und Hindi-Text erfordert Zeichen außerhalb des GSM-7-Alphabets von Bird.

Wie wählt Bird das Encoding?

Bird prüft den gesamten Nachrichtentext gegen GSM-7 und verwendet UCS-2, wenn ein Zeichen den Test nicht besteht.

Das Encoding gilt für den gesamten Nachrichtentext. Ein typografischer Apostroph erhält kein eigenes Encoding getrennt von den Wörtern um ihn herum. Seine Anwesenheit ändert das Encoding dieser Wörter ebenfalls.

Sie können das Ergebnis über segments.encoding prüfen, dessen Werte GSM_7BIT und UCS2 sind.

Wie verändert das Encoding die Segmentanzahl?

Das erweiterte Encoding lässt weniger Platz für Text in jedem abrechenbaren Segment.

Bird verwendet diese Limits:

EncodingEinzelsegmentJeder Teil bei Aufteilung
GSM-7160 Zeichen153 Zeichen
UCS-270 Zeichen67 Zeichen

Diese Limits zählen bestimmte Zeichen doppelt, wie unten aufgeführt. Jeder aufgeteilte Teil reserviert Platz für einen Header, damit das Telefon die Teile zusammensetzen kann. Concatenated SMS erklärt den Header.

Ein Nachrichtentext mit 155 gewöhnlichen lateinischen Buchstaben belegt ein GSM-7-Segment. Fügen Sie einen typografischen Apostroph hinzu, und der 156 Zeichen lange Text wechselt zu UCS-2. Er überschreitet 70, also greift das Mehrteil-Limit: 156 geteilt durch 67 ergibt aufgerundet drei Segmente.

Bird berechnet jedes Segment einzeln. SMS-Segmente erklärt, wie die Anzahl zur abrechenbaren Menge wird.

Welche Zeichen erfordern besondere Aufmerksamkeit?

Typografische Satzzeichen, Emoji und Buchstaben außerhalb des GSM-7-Alphabets können das Encoding der gesamten Nachricht ändern.

  • Gerade Apostrophe passen in GSM-7; typografische Apostrophe nicht.
  • Ein einfacher Bindestrich passt; typografische Halb- und Geviertstriche nicht.
  • Drei Punkte passen; das einzelne Auslassungszeichen nicht.
  • é und ü passen; á, í und ú nicht.

GSM-7 zählt diese Zeichen doppelt: ^, {, }, \, [, ], ~, | und . Form Feed, ein Steuerzeichen für einen Seitenumbruch, zählt ebenfalls doppelt. Achtzig Eurozeichen füllen daher ein Segment.

In UCS-2 zählt ein Emoji wie 😀 doppelt. Fünfunddreißig füllen ein Segment. Ein weiteres überschreitet die Kapazität.1

Kann Smart Encoding den Wechsel vermeiden?

Smart Encoding kann unterstützte Satzzeichen ersetzen, wenn jedes resultierende Zeichen in GSM-7 passt.

Sie aktivieren es pro Versand mit options.smart_encoding, einem Boolean, der true oder false akzeptiert, mit false als Standard. Ein typografischer Apostroph kann zu einem geraden Apostroph werden. Ein Auslassungszeichen kann zu drei Punkten werden.

Bird lässt den ursprünglichen Nachrichtentext unverändert, wenn ein nicht unterstütztes Zeichen verbleibt. Arabischer oder japanischer Text behält daher die Unicode-Kapazitätslimits. Eine Änderung der Einstellung kann diese Schriftsysteme nicht in GSM-7 einpassen.

Smart Encoding beschreibt die Ersetzungsregeln, und der Segment-Rechner prüft Text vor dem Versand.

Footnotes

  1. Für eigene Rechner misst Bird GSM-7 in Septets und UCS2 in UTF-16 Code Units. GSM-7-Erweiterungszeichen belegen zwei Septets. UTF-16 verwendet zwei Code Units für Zeichen außerhalb des ersten Unicode-Blocks, einschließlich 😀.

Kurz gesagt

  1. Der Nachrichtentext bestimmt das Encoding.

    Bird verwendet GSM-7, wenn jedes Zeichen in sein Alphabet passt, und UCS-2, wenn ein Zeichen außerhalb liegt.

  2. Manche Zeichen zählen doppelt.

    Einfacher lateinischer Text passt mit 160 Zeichen in ein Segment. Das erweiterte Alphabet fasst 70, wobei manche Emoji doppelt zählen.

  3. Die Aufteilung verringert die Kapazität jedes Teils.

    Mehrteilige Nachrichten reservieren Platz für einen Header. Einfacher lateinischer Text fasst dann 153 Zeichen pro Teil. Das erweiterte Alphabet fasst 67, wobei manche Zeichen doppelt zählen.

  4. Smart Encoding erfordert eine explizite Aktivierung.

    Bird ersetzt unterstützte Zeichen nur, wenn Sie die Option aktivieren und das gesamte Ergebnis in GSM-7 passt.

Bauen Sie auf demselben Netzwerk auf.

Ein Test-API-Schlüssel steht Ihnen sofort zur Verfügung. Der Produktivbetrieb wird freigeschaltet, sobald Sie eine Zahlungsmethode hinzufügen und einen Absender verifizieren.

Ihre nächste Idee.
Bereit zur Verbindung.