![]() |
UTF-8-Konvertierung Memo
hallo, möchte gerne, dass alle Umlaute richtig im Memo angezeigt werden!
Delphi-Quellcode:
var
MSG: String; i: integer; begin Memo1.Clear; MSG := Socket.ReceiveText; Memo1.Text := (MSG)TEncoding.UTF8; // was muss ich hier ändern, dass die Umlaute richtig Angezeigt werden? Memo2.Text := Memo1.Lines[8]; Memo2.Text := StringReplace(Memo2.Text,'<message>','',[rfReplaceAll]); Memo2.Text := StringReplace(Memo2.Text,'</message>','',[rfReplaceAll]); Memo2.Text := StringReplace(Memo2.Text,'<message />','',[rfReplaceAll]); StringGrid1.RowCount := StringGrid1.RowCount + 1; for i := StringGrid1.RowCount - 1 downto StringGrid1.FixedRows + 1 do StringGrid1.Rows [i].Assign (StringGrid1.Rows [i - 1]); StringGrid1.Rows [StringGrid1.FixedRows].Clear; StringGrid1.Cells [1,1] := FormatDateTime ('dd.mm.yyyy', Now); StringGrid1.Cells [2,1] := FormatDateTime ('hh:nn:ss', Now); |
AW: UTF-8-Konvertierung Memo
Welche Delphiversion?
Unter Delphi 7 mach' ich es mit
Delphi-Quellcode:
Memo1.Text := Utf8Decode(UTF8String);
|
AW: UTF-8-Konvertierung Memo
Welche Delphi Version? (OK, TEncoding läßt fast schon auf was Neueres schließen)
Bei D2009+ und wenn und du das direkt in eine String-Variable (UnicodeString) kopierst, dann wird das bereits nach Unicode umcodiert und das danach nochmal umzukodieren kann nur schief gehen. Und hast du dir mal angesehn, was TEncoding für Methoden hat? TEncoding.UTF8.Get...... Da gibt es garantiert was, wo man einen "AnsiString" (RawByteString) rein geben kann und als Result einen String (UnicodeString) raus bekommt. :stupid: Und wenn ich die vielen StringReplace sehe und auch noch einen festen Zeilenindex, dann hab ich das Gefühl hier geht etwas schief. Man versucht das Result als TEXT auszuwerten, obwohl es wohl eher sowas wie XML? sein könnte, wofür es Komponenten gibt, die das verstehen und richtig konvertieren/verarbeiten könnten. |
AW: UTF-8-Konvertierung Memo
Ich denke mal, die Konvertierung geschieht schon implizit bei der Zuweisung zu MSG. Da ReceiveText als AnsiString deklariert ist, wird dabei die aktuelle CodePage verwendet. Wenn die empfangenen Daten aber UTF-8 sind, dann könnte folgender Ansatz helfen (getestet in Delphi Berlin):
Delphi-Quellcode:
MSG := UTF8ToString(Socket.ReceiveText);
Memo1.Text := MSG; |
AW: UTF-8-Konvertierung Memo
hallo Uwe,
es geht! Danke :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz