SMS-Codierung
Der Datenteil einer Kurznachricht kann auf 3 verschiedene Arten codiert sein. Die Art der Codierung wird im Header der Kurznachricht, dort im Parameter DCS (Data Coding Scheme), und eventuell zusätzlich im UDH (User Data Header) der Nachricht, festgelegt.
Diese 3 Möglichkeiten bestehen:
16 Bit: jeweils 16 Bit werden als ein Unicode-Zeichen (UCS2) interpretiert. Es können alle Zeichen der Basic Multilingual Plane übertragen werden, pro Kurznachricht können maximal 70 Zeichen übertragen werden.
8 Bit: Jeweils 8 Bit werden als ein Byte interpretiert. Eine Interpretation der Bytes als darstellbare Zeichen ist nicht spezifiziert, daher wird diese Codierung in erster Linie zur Datenübertragung verwendet, pro Kurznachricht können maximal 140 Bytes übertragen werden.
7 Bit: Jeweils 7 Bit werden als ein Zeichen interpretiert, dadurch ist der Vorrat an darstellbaren Zeichen grundsätzlich auf 128 begrenzt, diese sind im 7-Bit-Standardzeichensatz festgelegt. Es existieren mehrere Mechanismen um den Bereich der darstellbaren Zeichen zu erweitern:
Escape: durch ein Zeichen im Basiszeichensatz (0x1B) kann einmalig für das folgende Zeichen auf eine weitere Zeichensatztabelle umgeschaltet werden. Falls nichts weiteres festgelegt ist, ist dies die 7-Bit-Standarderweiterungstabelle.
Escape mit Single Shift: durch ein Element im UDH der Nachricht kann eine alternative Erweiterungstabelle für den Escape-Mechanismus festgelegt werden. Alternative Erweiterungstabellen existieren für die folgenden Sprachen: Türkisch, Spanisch, Portugiesisch, Bengali, Gujarati, Hindi, Kannada, Malayalam, Oriya, Punjabi, Tamil, Telugu, Urdu.
Locking Shift: durch ein Element im UDH der Nachricht kann statt des Standardzeichensatzes ein alternativer Zeichensatz ausgewählt werden. Alternative Zeichensatztabellen existieren für die folgenden Sprachen: Türkisch, Portugiesisch, Bengali, Gujarati, Hindi, Kannada, Malayalam, Oriya, Punjabi, Tamil, Telugu, Urdu.
Beispiele:
16 Bit: 0x0637 ergibt das arabische Zeichen Tah: ط
7 Bit: 0x65 ergibt ein e
7 Bit mit Escape: 0x1B gefolgt von 0x65 ergibt ein Eurozeichen €
7 Bit mit Single Shift: bei Einstellung 'Türkisch' ergibt 0x1B gefolgt von 0x53 ein S mit Cedille Ş
7 Bit mit Locking Shift: bei Einstellung 'Portugiesisch' ergibt 0x1B gefolgt von 0x0B ein O mit Circumflex Ô
Zeichensätze
Standardzeichensatz
| 0x00 | 0x10 | 0x20 | 0x30 | 0x40 | 0x50 | 0x60 | 0x70 |
0x00 | @ | Δ | | 0 | ¡ | P | ¿ | p |
0x01 | £ | _ | ! | 1 | A | Q | a | q |
0x02 | $ | Φ | " | 2 | B | R | b | r |
0x03 | ¥ | Γ | # | 3 | C | S | c | s |
0x04 | è | Λ | ¤ | 4 | D | T | d | t |
0x05 | é | Ω | % | 5 | E | U | e | u |
0x06 | ù | Π | & | 6 | F | V | f | v |
0x07 | ì | Ψ | ' | 7 | G | W | g | w |
0x08 | ò | Σ | ( | 8 | H | X | h | x |
0x09 | ç | Θ | ) | 9 | I | Y | i | y |
0x0A | ¹ | Ξ | * | : | J | Z | j | z |
0x0B | Ø | ³ | + | ; | K | Ä | k | ä |
0x0C | ø | Æ | , | < | L | Ö | l | ö |
0x0D | ² | æ | - | = | M | Ñ | m | ñ |
0x0E | Å | ß | . | > | N | Ü | n | ü |
0x0F | å | É | / | ? | O | § | o | à |
¹: ist ein Zeilenvorschub (LF, Linefeed)
²: ist ein Wagenrücklauf (CR, Carriage Return)
³: ist der Escape-Code.
|
|
Standardzeichensatzerweiterung
| 0x00 | 0x10 | 0x20 | 0x30 | 0x40 | 0x50 | 0x60 | 0x70 |
0x00 | | | | | | | | | |
0x01 | | | | | | | | |
0x02 | | | | | | | | |
0x03 | | | | | | | | |
0x04 | | ˆ | | | | | | |
0x05 | | | | | | | € | |
0x06 | | | | | | | | |
0x07 | | | | | | | | |
0x08 | | | { | | | | | |
0x09 | | | } | | | | | |
0x0A | ¹ | | | | | | | |
0x0B | | ² | | | | | | |
0x0C | | | | [ | | | | |
0x0D | | | | ˜ | | | | |
0x0E | | | | ] | | | | |
0x0F | | | \ | | | | | |
¹: ist ein Seitenumbruch (Page Break)
²: ist ein ESC.
|
Zeichensatzerweiterung Türkisch
| 0x00 | 0x10 | 0x20 | 0x30 | 0x40 | 0x50 | 0x60 | 0x70 |
0x00 | | | | | | | | | |
0x01 | | | | | | | | |
0x02 | | | | | | | | |
0x03 | | | | | | Ş | ç | ş |
0x04 | | ˆ | | | | | | |
0x05 | | | | | | | € | |
0x06 | | | | | | | | |
0x07 | | | | | Ğ | | ğ | |
0x08 | | | { | | | | | |
0x09 | | | } | | İ | | ı | |
0x0A | ¹ | | | | | | | |
0x0B | | ² | | | | | | |
0x0C | | | | [ | | | | |
0x0D | | | | ˜ | | | | |
0x0E | | | | ] | | | | |
0x0F | | | \ | | | | | |
¹: ist ein Seitenumbruch (Page Break)
²: ist ein ESC.
|
|
Zeichensatzerweiterung Spanisch
| 0x00 | 0x10 | 0x20 | 0x30 | 0x40 | 0x50 | 0x60 | 0x70 |
0x00 | | | | | | | | | |
0x01 | | | | | Á | | á | |
0x02 | | | | | | | | |
0x03 | | | | | | | | |
0x04 | | ˆ | | | | | | |
0x05 | | | | | | Ú | € | ú |
0x06 | | | | | | | | |
0x07 | | | | | | | | |
0x08 | | | { | | | | | |
0x09 | ç | | } | | Í | | í | |
0x0A | ¹ | | | | | | | |
0x0B | | ² | | | | | | |
0x0C | | | | [ | | | | |
0x0D | | | | ˜ | | | | |
0x0E | | | | ] | | | | |
0x0F | | | \ | | Ó | | ó | |
¹: ist ein Seitenumbruch (Page Break)
²: ist ein ESC.
|