Thema: Delphi TJson.Format und Umlaute

Einzelnen Beitrag anzeigen

Schokohase
(Gast)

n/a Beiträge
 
#7

AW: TJson.Format und Umlaute

  Alt 2. Sep 2019, 11:41
Zur Ausgangsfrage zurück:
Aber wie bekomme ich ein korrekt UTF8-kodiertes und formatiertes JSON zusammen?
ganz einfach mit
Delphi-Quellcode:

procedure p();
var
   jsonObject: TJSONObject;
begin
   jsonObject := TJsonObject.Create();
   jsonObject.AddPair('text', 'Straße');

   Writeln( jsonObject.ToString() ); // unformatiert
   WriteLn( Rest.Json.TJson.Format(jsonObject) ); // formatiert
end;
ergibt
Code:
{"text":"Straße"}
{
  "text":"Straße"
}
Um davon jetzt eine UTF8 kodierte Bytefolge zu erhalten nimmt man z.B. TEncoding.UTF8.GetBytes( json ); .
Wenn man etwas mit Indy verschicken will, dann reicht es in der Regel den String zu verwenden und die entsprechend gewünschte Kodierung anzugeben. Das Umwandeln von dem String in die Kodierung übernehmen dann eigentlich die Indy-Komponenten.

Nur so nebenbei erwähnt:

Das Ergebnis
Code:
{"text":"Stra\u00DFe"}
wird ja auch in einem Delphi-Unicode zurückgegeben. Ist also auch nicht UTF8 oder was auch immer vermutet.

Geändert von Schokohase ( 2. Sep 2019 um 11:47 Uhr)
  Mit Zitat antworten Zitat