Einzelnen Beitrag anzeigen

Meta777

Registriert seit: 8. Sep 2004
Ort: Magdeburg
248 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

Re: TIdTCPServer und -Client Umlaute ohne Punkte

  Alt 16. Sep 2009, 21:59
Hallo,

danke für die antworten. ich habe mal etwas zeit gefunden mich wieder dem problem zuzuwenden...

@XXcD: Hatte erst Delphi 2009 benutzt, sind aber wieder auf Delphi 7 umgestiegen - jedoch wurde in diesem Zug auch die Indy geupdatet...
@Valle: korrekt ü -> u, Ä -> A usw. Beide von mir in Delphi 7 geschrieben.

Es hat was mit dem Indy update zu tun (Client und Server liefen vorher ohne diese Problem). Ich konnte auch die Sourcezeile lokalisieren. In der Unit IdGlobal Line 1555:

Delphi-Quellcode:
class function TIdTextEncoding.Convert(ASource, ADestination: TIdTextEncoding; const ABytes: TIdBytes): TIdBytes;
begin
  Result := ADestination.GetBytes(ASource.GetChars(ABytes));
end;
Der TIdTCPClient - genauer gesagt TIdTCPConnection - ruft diese function vor dem senden auf. So wird aus
78, 97, 109, 101, 61, 77, 252, 108, 108, 101, 114, ....
78, 97, 109, 101, 61, 77, 117, 108, 108, 101, 114, ....


Stack*:

TIdTextEncoding.Convert($7EA2E10,$7EA2DD0,(78, 97, 109, 101, 61, 77, 252, 108, 108, 101, 114, xxxxx))
ToBytes('Name=Müllerxxxxx'#$D#$A,-1,1,$7EA2DD0,$7EA2E10)
TIdIOHandler.Write('Name=Müllerxxxxx'#$D#$A,$7EA2D D0,$7EA2E10)
TIdIOHandler.WriteLn('Name=Müllerxxxxx',$7EA2DD0,$ 7EA2E10)
TIdIOHandler.WriteLnRFC('Name=Müllerxxxxx',$7EA2DD 0,$7EA2E10)
TIdIOHandler.WriteRFCStrings($6D36508,True,$7EA2DD 0,$7EA2E10)
TIdTCPConnection.WriteRFCStrings($6D36508)

*Name teilweise ge-xt ^^


Wie geht das mit den Encoding? Wo stellt man das ein?


Danke und Shalom
  Mit Zitat antworten Zitat