Nachtrag:
Im Grundegenommen kannst du deine "umgebaute" Prozedur wegschmeißen ... da sie ja jetzt Fehlerhaft ist.
Aber wenn du nicht nachschauen kannst, was genau ankommen, also ob mal
Ansi oder UTF ankommt, kannst du ja einen "nicht" so ganz guten Weg versuchen.
Wie gesagt, perfekt ist das nicht.
Es wird halt versucht den String von UTF8 nach
Ansi umzuwandeln
und bei einem Fehler, also wenn der String kein UTF8-String ist, dann wird er als AnsiString verwendet.
Delphi-Quellcode:
SIn := ...
// die empfangenen Daten
Try
// von UTF8 nach ANSI umwandeln
SOut := UTF8ToAnsi(SIn);
Except
// und bei Fehler die Daten so übernehmen
SOut := SIn;
End;
// SOut enthält jetzt (vermutlich) die Daten im ANSI-Format
Also versuche lieber rauszubekommtn was ankommt und dann dementsprechend diese Daten dann zu verwenden.
Delphi-Quellcode:
S :=
{empfangene Daten}
If {Datenformat der empfangenen Daten = UTF8} Then
S := UTF8ToAnsi(S);
// Hier hätte man dann S im ANSI-Format (wenn nur ANSI und UTF8 möglich ist)
PS: in delphi wird standardmäßig das
ANSI-Format verwendet,
weßhalb derzeit der String und der AnsiString genau das Selbe darstellen.