Leicht gesagt. Das ist nicht so einfach, wenn man es richtig machen will. Wie gesagt ist die obige Funktion nur für den Hausgebrauch.enyaw_ecurb hat geschrieben: Jetzt aber mal ehrlich: Es wäre eigentlich schon elementar, dass man ein funktionierendes StringReplace (für widestrings) in der RTL hätte...
Probier z.B. mal diesen String:
Combined Chars: ÅÅ
Damit zu behandeln:
Memo1.Text:=WideStringReplace(UTF8Decode(Memo1.Text), 'a', 'x',[rfReplaceAll,rfIgnoreCase]);
Da kommt das da raus:
Combined Chxrs: x̊Å
Das erste Å wird ersetzt durch x̊ was natürlich falsch ist. Hier müsste man erst Normalisieren.
Edit: Sehe gerade dass auf dem Übertragungsweg normalisiert wird, d.h. den obigen String wirst du nicht im original aus dem Browser raus kopieren können. Also dann halt so: WS:=WideChar(65)+WideChar(778)+WideChar(8491);