Hallo,
Delphi-Quellcode:
if not TCPClient.Connected then
TCPClient.Connect;
strMsg := GetMessageIos(ADeviceToken, GetPayLoadIos(AMessage, 'default', 0, AFrom, ATo));
strMsg := UTF8Encode(strMsg);
TCPClient.IOHandler.Write(strMsg, TEncoding.UTF8);
TCPClient.Disconnect;
Das kann auch nicht wirklich funktionieren. Ich gehe jetzt mal von
strMsg: string
aus. Wieso kodierst du einen
Unicode-String mit
strMsg := UTF8Encode(strMsg);
als UTF8 in einen
Unicode-String und kodierst das kauderwelsch anschließend mit
TCPClient.IOHandler.Write(strMsg, TEncoding.UTF8);
noch mal als UTF8? Wenn das
TCPClient.IOHandler.Write
als ersten Parameter einen
string
erwartet, wäre es richtig dort auch einen korrekten
Unicode-String rein zu werfen. Und im zweiten Parameter nur anzugeben wie der weitergereicht werden soll.
Ob das dann mit Apple funktioniert weiß ich nicht.
Mit den verschiedenen String-Kodierungen habe ich mich neulich selbst beschäftigt. Wenn man selbst einen String in einer speziellen Kodierung haben will, dann mit den Mitteln von
TEncoding
wie z.b.
TEncoding.UTF8.GetBytes(MyString)
.
einbeliebigername.