Einzelnen Beitrag anzeigen

Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49626
381 Beiträge
 
Delphi 11 Alexandria
 
#23

AW: HTTP.Get/Post - Umlaute anzeigen

  Alt 17. Nov 2019, 13:12
@Incocnito
Du hast recht - mir ist aufgefallen, das auch etliche andere Zeichen kommen.
Z.B. diese hier:
Zitat:
\u00c9 -> É
\u00b0 -> °
\u0141 -> Ł
\u017e -> ž
\u00e9 -> é
\u2013 -> –
\u00df -> ß
\u00dc -> Ü
\u00fc -> ü
\u00e4 -> ä
\u00df -> ß
\u00f6 -> ö
Ich habe meine kleine Routine mal etwas universeller gemacht.
Nimmt und gibt nun einen String.
Ist kein Sonderzeichen drin, kommt der Text unverändert zurück.
Evtl. vorhandene '\u....' werden entsprechend ersetzt.
Delphi-Quellcode:
function DecodeJString(text : string) : string;
var
  p, val : word;
begin
  result := ''; // !
  p := Pos('\u', text); // 1. Sonderzeichen suchen
  while (p > 0) do // Sonderzeichen vorhanden ?
  begin
    val := hextoint(text[p + 2] + text[p + 3] + text[p + 4] + text[p + 5]); // Wert ermitteln
    result := result + copy(text, 1, p - 1) + widechar(val); // 1. Teil-String + Sonderzeichen
    Delete(text, 1, p + 5); // zu 'Rest-String' löschen
    p := Pos('\u', text); // noch mehr Sonderzeichen vorhanden ?
  end;
  result := result + text; // (Rest-) String hinzufügen
end;
Viel einfacher & kürzer gehts wahrscheinlich nicht ...

Geändert von TERWI (17. Nov 2019 um 13:15 Uhr)
  Mit Zitat antworten Zitat