SMS-Nachrichten, die keine ASCII-Zeichen codieren

7

Ich habe ein Nokia N900 Telefon, und wenn ich eine SMS sende, zeigt das Widget die Anzahl der in der Nachricht verbleibenden Zeichen (und die Anzahl der tatsächlichen Kurznachrichten, die zum Senden der gesamten Nachricht benötigt werden) an.

Ich lebe in Frankreich, wo ich beim Schreiben von Nachrichten mit Nicht-ASCII-Zeichen die folgende seltsame Sache bemerkte:

  • einige Nicht-ASCII-Zeichen sind in einem Zeichen / Byte codiert, z. "é", "è", "à", "ù"
  • Das Vorhandensein einiger Nicht-ASCII-Zeichen wie "ç", "ê", "ô" verbraucht eine feste Menge von 90 Zeichen / Byte + 1 Byte pro Zeichen
  • das Vorhandensein eines zweiten "ç", "ê" usw. verbraucht nur 1 zusätzliches Byte.

Ich frage mich also, wie die Nachrichten verschlüsselt sind, weil ich das obige Schema nicht mit den traditionellen Kodierungen vergleichen kann, die ich kenne (iso-8859-1, UTF-8, UTF-16 ...).

    
gurney alex 18.08.2011, 07:44
quelle

3 Antworten

10

Ссылка

Abhängig von der Codierung kann SMS 160/140/70 Zeichen senden. Wenn einer der Nicht-ASCII-Zeichen verwendet wird, müsste die gesamte Nachricht in UTF-16 codiert werden, daher der "Verbrauch", den Sie erfahren haben.

    
timdream 18.08.2011, 07:50
quelle
6

@Vicky und @timdream haben Recht, außer dass ich glaube, dass es technisch UCS-2 und nicht UTF- ist. 16, dass das Telefon manchmal verwendet, die eine feste 16-Bit-Größe pro Zeichen hat. UTF-16 verwendet eine variable Breite von zwei oder vier Bytes pro Zeichen, abhängig vom zu codierenden Zeichen. Dieser Wikipedia-Artikel erklärt dies im Detail. UCS-2 nimmt die Nachricht strikt auf maximal 70 Zeichen (160 Bytes) herunter. Obwohl die Beschreibung von UCS-2 im Unicode-Konsortium etwas verwirrend ist, gibt es eine Handvoll Websites im Internet, die sich mit SMS beschäftigen Bestätigen Sie, dass Wikipedia Recht hat.

    
hotshot309 06.06.2012 18:44
quelle
5

Sie haben bereits die Antwort von @timdream, aber nur ein weiterer Punkt, dass einige der erweiterten Zeichen, die Sie erwähnen, im GSM 7-Bit-Alphabet als einzelne Zeichen enthalten sind, einige sind in GSM 7-Bit durch eine zusätzliche Escape codiert Zeichen (also zwei Bytes, um dieses Zeichen darzustellen) und einige können überhaupt nicht in GSM 7-Bit codiert werden und müssen stattdessen als UTF-16 codiert werden.

Die vollständige alphabetische Definition ist hier: Ссылка

Beachten Sie die besondere Besonderheit mit C-Cedilla - aus dieser Datei,

  

Die ETSI GSM 03.38 Spezifikation zeigt ein C-Cedilla in Großbuchstaben   Glyphe bei 0x09. Dies kann das Ergebnis einer eingeschränkten Anzeige sein   Funktionen zum Behandeln von Zeichen mit Unterlängen. Jedoch,   das   Sprachabsicht ist klar für den Kleinbuchstaben   C-Cedilla, wie gezeigt   in der Abbildung unten. Das Mapping für Großbuchstaben C-Cedilla ist   gezeigt   in einer kommentierten Zeile in der Mapping-Tabelle.

Einige Geräte codieren sowohl Groß- als auch Kleinbuchstaben c-cedilla als das gleiche codierte Zeichen (0x09).

    
Vicky 18.08.2011 09:52
quelle

Tags und Links