Ich habe leider dasselbe Problem mit der wirklich neuesten Version (10-4924 von gestern) und den TCPIP-Komponenten. Hässlich, aber plotzlich werden da z.B. bei einem IdTCPClient.SendCmd keine Umlaute mehr übermittelt, resp. beim Server kommen Fragezeichen an.
Das hat mit der früheren Version von
Indy 10 noch funktioniert.
Ich habe mir jetzt folgendermassen beholfen, hoffe aber, ich könne das irgendwann wieder raus schmeissen.
Code:
IdTCPClient.SendCmd(Umlaute(Puffer, False), 200);
Code:
{Umlaute in Sende-Puffer umsetzen}
function TAServer1.Umlaute(InPuf: string; Read: boolean): string;
var i : integer;
begin
result := '';
if not Read then
begin
for i := 1 to length(InPuf) do
result := result + String(IntToHex(Ord(InPuf[i]), 2));
end
else
begin
while length(InPuf) <> 0 do
begin
Result := Result + Char(StrToInt('$' + copy(InPuf,1, 2)));
InPuf := copy(InPuf, 3, length(InPuf) - 2);
end;
end;
end;
Die Funktion setzt mit False alles in Hex-Notation um und mit True auf der Gegenseite wieder zurück.
Aber vielleicht hat ja jemand eine bessere Lösung. Irgendwie habe ich das Gefühl, man müsse vermütlich den Indys nur irgendwo das richtige Character Set beibringen, aber ich habe keine Ahnung, wo.