StringReplace mit Umlauten?

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Benutzeravatar
theo
Beiträge: 10869
Registriert: Mo 11. Sep 2006, 19:01

Re: StringReplace mit Umlauten?

Beitrag von theo »

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...
Leicht gesagt. Das ist nicht so einfach, wenn man es richtig machen will. Wie gesagt ist die obige Funktion nur für den Hausgebrauch.
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);

Antworten