Umlaute wie ê in sms werden als ? zeichen dargestellt

sengul

Bekanntes Mitglied
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.

Code:
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.
 
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.
 
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.

Code:
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).

Code:
request.setShortMessage(msgWithUrl, Data.ENC_CP1252);
request.setDataCoding((byte) 0x08 );
 
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.

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

Neue Themen


Zurück
Oben