Kodier den String als UTF-8 und fertig.
Somit kann sich jeder das von/nach
Unicode oder
ANSI umkodieren, wie er lustig ist ... solange es bei der Übertragung als UTF-8 definiert ist.
(natürlich bleibt dann weiterhin das Problem, daß beim Umwandeln von UTF-8 nach
ANSI Informationen verloren gehen könnten, aber das würde ja auch passieren, wenn du von
Unicode nach
ANSI umwandeln läßt.)
Oder du überträgst es immer als
Unicode (WideString), was am Ende auf's Selbe hinausläuft.
Man überträgt/speichert eben keine dynamischen Daten.
Jedenfalls nicht, ohne das Format auch noch mit zu übertragen, damit der Empfänger weiß wie er das zu interpretieren hat.
Zitat:
Delphi-Quellcode:
procedure TformSender.SendString(const stringToSend: string; const ReceiverHandle: HWND);
...
copyDataStruct.lpData := PWideChar(stringToSend);
Aber das war schonmal total falsch. *dir auf die Pfoten hau*
String, bzw. Char ist nicht immer PWideChar, bzw. 2.
String > Char > PChar > SizeOf(Char)
WideString > WideChar > PWideChar > 2=SizeOf(WideChar)
AnsiString > AnsiChar > PAnsiChar > 1=SizeOf(AnsiChar)
aber niemals vermischt