# GSM 03.38

Es gibt drei verschiedene Möglichkeiten, Texte und Daten in einer GSM-Kurznachricht mit einer maximalen Nutzdatenmenge von 1120 Bit zu kodieren:

## 7 Bit, 160 Zeichen

    gemäß Standard GSM 03.38, ugs. GSM-Alphabet. Für SMS-Textnachrichten, bei denen ein begrenzter Zeichenvorrat zur Darstellung ausreichend ist. Der Text kann pro Nachricht bis zu 160 Zeichen enthalten (7 Bit/Zeichen × 160 Zeichen = 1.120 Bit). Jeweils 7 Bit werden als ein Zeichen interpretiert, was den Vorrat an darstellbaren Zeichen grundsätzlich auf 128 beschränkt. Diese 128 Zeichen sind im 7-Bit-Basiszeichensatz festgelegt. Es existieren mehrere Mechanismen, mit denen der Vorrat an darstellbaren Zeichen erweitert werden kann:
   * Escape: Durch das Escape-Zeichen (ESC, 0x1B) wird für die Anzeige des direkt folgenden Zeichens einmalig die Standardzeichensatzerweiterung herangezogen.
   * Escape mit Single Shift: Durch ein Element im User Data Header der Nachricht kann anstatt der Standardzeichensatzerweiterung eine alternative Zeichensatzerweiterung ausgewählt werden.
   * Locking Shift: Durch ein weiteres Element im User Data Header der Nachricht kann anstatt des Basiszeichensatzes ein alternativer Zeichensatz ausgewählt werden.

## 8 Bit, 140 Zeichen

    Für Datennachrichten (binäre Inhalte), wie etwa Logos, Bildmitteilungen, Klingeltöne. Eine 8-Bit-Nachricht kann bis zu 140 Zeichen enthalten (8 Bit/Zeichen × 140 Zeichen = 1.120 Bit).

## 16 Bit, 70 Zeichen

    Unicode UCS2, d. h. auf BMP (Basic Multilingual Plane) beschränktes UTF-16. Unicode-Nachrichten werden für alle nicht direkt unterstützten Schriftsysteme benötigt, z. B. Arabisch, Hebräisch, Kyrillisch und Lateinisch mit anderen Sonderzeichen. Eine Unicode-Nachricht ist begrenzt auf 70 Zeichen (16 Bit/Zeichen × 70 Zeichen = 1.120 Bit).

## 7 Bit

Die Zeichensatzerweiterungstabellen für 7-Bit-Nachrichten sind üblicherweise so gestaltet, dass auf Endgeräten, die nicht über diese Tabellen verfügen und daher das Zeichen der Basistabelle darstellen, möglichst ähnlich aussehende Ergebnisse erzeugt werden, z. B. „e“ statt „€“.
Es existieren Single-Shift-Zeichensatzerweiterungstabellen für Türkisch, Spanisch, Portugiesisch, Bengali, Gujarati, Hindi, Kannada, Malayalam, Oriya, Punjabi, Tamil, Telugu sowie Urdu.
Es existieren Locking-Shift-Zeichensatztabellen für Türkisch, Portugiesisch, Bengali, Gujarati, Hindi, Kannada, Malayalam, Oriya, Punjabi, Tamil, Telugu sowie Urdu.
Die Mechanismen Single Shift und Locking Shift können miteinander kombiniert werden.
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 'Türkisch' ergibt 0x1C ein S mit Cedille „Ş“

## Zeichensatztabellen

Basiszeichensatz :
| | 0x00 | 0x10 | 0x20 | 0x30 | 0x40 | 0x50 | 0x60 | 0x70 |
| 0x00 | @ | Δ | SP⁴ | 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 | LF¹ | Ξ | * | : | J | Z | j | z |
| 0x0B | Ø | ESC³ | + | ; | K | Ä | k | ä |
| 0x0C | ø | Æ | , | < | L | Ö | l | ö |
| 0x0D | CR² | æ | - | = | M | Ñ | m | ñ |
| 0x0E | Å | ß | . | > | N | Ü | n | ü |
| 0x0F | å | É | / | ? | O | § | o | à |
Standardzeichensatzerweiterung :
| | 0x00 | 0x10 | 0x20 | 0x30 | 0x40 | 0x60 |
| 0x00 | | | | | | | |
| 0x01 | | | | | | |
| 0x02 | | | | | | |
| 0x03 | | | | | | |
| 0x04 | | ^ | | | | |
| 0x05 | | | | | | € |
| 0x06 | | | | | | |
| 0x07 | | | | | | |
| 0x08 | | | { | | | |
| 0x09 | | | } | | | |
| 0x0A | FF¹ | | | | | |
| 0x0B | | SS2² | | | | |
| 0x0C | | | | [ | | |
| 0x0D | | | | ~ | | |
| 0x0E | | | | ] | | |
| 0x0F | | | \ | | | |
Locking Shift Zeichentabelle Türkisch :
| | 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 | à |
Single Shift Zeichentabelle 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 | | | \ | | | | | |
Locking Shift Zeichentabelle Portugiesisch :
| | 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 | à |
Single Shift Zeichentabelle Portugiesisch :
| | 0x00 | 0x10 | 0x20 | 0x30 | 0x40 | 0x50 | 0x60 | 0x70 |
| 0x00 | | | | | | | | | |
| 0x01 | | | | | À | | Â | |
| 0x02 | | Φ | | | | | | |
| 0x03 | | Γ | | | | | | |
| 0x04 | | ^ | | | | | | |
| 0x05 | ê | Ω | | | | Ú | € | ú |
| 0x06 | | Π | | | | | | |
| 0x07 | | Ψ | | | | | | |
| 0x08 | | Σ | { | | | | | |
| 0x09 | ç | Θ | } | | Í | | í | |
| 0x0A | ¹ | | | | | | | |
| 0x0B | Ô | ² | | | | Ã | | ã |
| 0x0C | ô | | | [ | | Õ | | õ |
| 0x0D | ³ | | | ~ | | | | |
| 0x0E | Á | | | ] | | | | |
| 0x0F | á | Ê | \ | | Ó | | ó | â |
Locking Shift Zeichentabelle Hindi :
| | 0x00 | 0x10 | 0x20 | 0x30 | 0x40 | 0x50 | 0x60 | 0x70 |
| 0x00 | ँ | ऐ | ⁴ | 0 | ब | ा | ॐ | p |
| 0x01 | ं | ऑ | ! | 1 | भ | ि | a | q |
| 0x02 | ः | ऒ | ट | 2 | म | ी | b | r |
| 0x03 | अ | ओ | ठ | 3 | य | ु | c | s |
| 0x04 | आ | औ | ड | 4 | र | ू | d | t |
| 0x05 | इ | क | ढ | 5 | ऱ | ृ | e | u |
| 0x06 | ई | ख | ण | 6 | ल | ॄ | f | v |
| 0x07 | उ | ग | त | 7 | ळ | ॅ | g | w |
| 0x08 | ऊ | घ | ) | 8 | ऴ | ॆ | h | x |
| 0x09 | ऋ | ङ | ( | 9 | व | े | i | y |
| 0x0A | ¹ | च | थ | : | श | ै | j | z |
| 0x0B | ऌ | ³ | द | ; | ष | ॉ | k | ॲ |
| 0x0C | ऍ | छ | , | ऩ | स | ॊ | l | ॻ |
| 0x0D | ² | ज | ध | प | ह | ो | m | ॼ |
| 0x0E | ऎ | झ | . | फ | ़ | ौ | n | ॾ |
| 0x0F | ए | ञ | न | ? | ऽ | ् | o | ॿ |
Single Shift Zeichentabelle Hindi :
| | 0x00 | 0x10 | 0x20 | 0x30 | 0x40 | 0x50 | 0x60 |
| 0x00 | @ | < | ४ | ज़ | | | P | |
| 0x01 | £ | = | ५ | ड़ | A | Q | |
| 0x02 | $ | > | ६ | ढ़ | B | R | |
| 0x03 | ¥ | ¡ | ७ | फ़ | C | S | |
| 0x04 | ¿ | ^ | ८ | य़ | D | T | |
| 0x05 | " | ¡ | ९ | ॠ | E | U | € |
| 0x06 | ¤ | _ | ॑ | ॡ | F | V | |
| 0x07 | % | # | ॒ | ॢ | G | W | |
| 0x08 | & | * | { | ॣ | H | X | |
| 0x09 | ' | । | } | ॰ | I | Y | |
| 0x0A | ¹ | ॥ | ॓ | ॱ | J | Z | |
| 0x0B | * | ³ | ॔ | | K | | |
| 0x0C | + | ० | क़ | [ | L | | |
| 0x0D | ² | १ | ख़ | ~ | M | | |
| 0x0E | – | २ | ग़ | ] | N | | |
| 0x0F | / | ३ | \ | | O | | |
Locking Shift Zeichentabelle Bengali :
| | 0x00 | 0x10 | 0x20 | 0x30 | 0x40 | 0x50 | 0x60 | 0x70 |
| 0x00 | ঁ | ঐ | ⁴ | 0 | ব | া | ৎ | p |
| 0x01 | ং | | ! | 1 | ভ | ি | a | q |
| 0x02 | ঃ | | ট | 2 | ম | ী | b | r |
| 0x03 | অ | ও | ঠ | 3 | য | ু | c | s |
| 0x04 | আ | ঔ | ড | 4 | র | ূ | d | t |
| 0x05 | ই | ক | ঢ | 5 | | ৃ | e | u |
| 0x06 | ঈ | খ | ণ | 6 | ল | ৄ | f | v |
| 0x07 | উ | গ | ত | 7 | | | g | w |
| 0x08 | ঊ | ঘ | ) | 8 | | | h | x |
| 0x09 | ঋ | ঙ | ( | 9 | | ে | i | y |
| 0x0A | ¹ | চ | থ | : | শ | ৈ | j | z |
| 0x0B | ঌ | ³ | দ | ; | ষ | | k | ৗ |
| 0x0C | | ছ | , | | স | | l | ড় |
| 0x0D | ² | জ | ধ | প | হ | ো | m | ঢ় |
| 0x0E | | ঝ | . | ফ | ় | ৌ | n | ৰ |
| 0x0F | এ | ঞ | ন | ? | ঽ | ্ | o | ৱ |
Single Shift Zeichentabelle Bengali :
| | 0x00 | 0x10 | 0x20 | 0x30 | 0x40 | 0x50 | 0x60 |
| 0x00 | @ | < | ৬ | ৶ | | P | |
| 0x01 | £ | = | ৭ | ৷ | A | Q | |
| 0x02 | $ | > | ৮ | ৸ | B | R | |
| 0x03 | ¥ | ¡ | ৯ | ৹ | C | S | |
| 0x04 | ¿ | ^ | য় | ৺ | D | T | |
| 0x05 | " | ¡ | ৠ | | E | U | € |
| 0x06 | ¤ | _ | ৡ | | F | V | |
| 0x07 | % | # | ৢ | | G | W | |
| 0x08 | & | * | { | | H | X | |
| 0x09 | ' | ০ | } | | I | Y | |
| 0x0A | ¹ | ১ | ৣ | | J | Z | |
| 0x0B | * | ² | ৲ | | K | | |
| 0x0C | + | ২ | ৳ | [ | L | | |
| 0x0D | ³ | ৩ | ৴ | ~ | M | | |
| 0x0E | – | ৪ | ৵ | ] | N | | |
| 0x0F | / | ৫ | \ | | O | | |

## Quellen

* ↑ Mapping of GSM 03.38 characters to Unicode. (TXT; 9 kB) 10. November 2009, abgerufen am 18. November 2009 (englisch).
* ↑ 3GPP TS 23.038: Alphabets and language-specific information; Release 9.0.0. (ZIP/DOC; 174 kB) 28. September 2009, abgerufen am 16. November 2009 (englisch).