# Umlaute wie ê in sms werden als ? zeichen dargestellt



## sengul (12. Mrz 2019)

Hallo,
mit opensmpp-core:3.0.0 library kommuniezire ich mit SMSC. Das versenden klappt auch gut, aber manche Zeichen wie (êşğ) werden als '?' Zeichen dargestellt.


```
private final SmppSessionH smppSessionH;
Session smppSession = smppSessionH.getSession();
SubmitSM request = new SubmitSM();
request.setDataCoding((byte) 0x00);
request.setShortMessage("être", Data.ENC_CP1252);
smppSession.submit(request);
```

Für das data_coding habe ich auch mit ENC_ASCII, ENC_ISO8859_1, ENC_UTF16_BEM, ENC_UTF16_BE, ENC_UTF16_LEM, ENC_UTF16_LE, ENC_UTF8, ENC_UTF16 probiert aber leider ohne Erfolg.

Wie kann ich die richtige encoding für Latein und auch für nicht Lateinische Alphabet bekommen?
Danke im Vorraus.


----------



## mihe7 (12. Mrz 2019)

Hab mir das mal kurz angesehen und ich kann auch völlig daneben liegen (ich habe keine Ahnung von GSM/SMS): könnte es sein, dass Du für setDataCoding andere Werte brauchst? Wenn ich es richtig sehe, legt 0 ein GSM 7-Bit Encoding fest, ich würde es mal mit 8 (UCS-2) versuchen.


----------



## sengul (13. Mrz 2019)

Habe ich probiert leider ohne Erfolg, wenn ich für data_coding (byte) 0x08 nehme und für encoding Data.ENC_UTF16 nehme, dann kommt gar keine SMS.


```
request.setShortMessage(msgWithUrl, Data.ENC_UTF16);
request.setDataCoding((byte) 0x08 );
```

Und mit der Kombination wie unten, kommt zwar eine Sms aber mit ganz anderen Zeichen die ich gar nicht kenne, (schaut chinesisch aus).


```
request.setShortMessage(msgWithUrl, Data.ENC_CP1252);
request.setDataCoding((byte) 0x08 );
```


----------



## mihe7 (13. Mrz 2019)

Wie gesagt: ich kenne mich damit nicht aus (würde das Coding aber sicherheitshalber noch vorher setzen). Es scheint ja so zu sein, dass mit dem Coding irgendwelche Kodierungen und Zeichensätze verbunden sind, die verwendet werden. Vgl. https://en.wikipedia.org/wiki/Data_Coding_Scheme und https://en.wikipedia.org/wiki/GSM_03.38


----------



## sengul (13. Mrz 2019)

Nach meinem ganzen recherchen finde ich heraus dass für das nicht Lateinische Alphabet UTF-16 mit dataCoding 8 gilt. Und genau wenn ich das mache kommt keine SMS mehr.


```
request.setDataCoding((byte) 0x08 );
request.setShortMessage("être", Data.ENC_UTF16);
```


----------

