Thema: Delphi Indy TIdIRC Umlaute

Einzelnen Beitrag anzeigen

hesch21

Registriert seit: 31. Aug 2004
Ort: Basel
114 Beiträge
 
Delphi XE2 Enterprise
 
#4

AW: Indy TIdIRC Umlaute

  Alt 8. Feb 2013, 14:55
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.
Heinz Schneider
  Mit Zitat antworten Zitat