Seite 1 von 1

JsonDecode() // JsonEncode

Verfasst: Mi, 15. Jun 2022 7:59
von ramses
Hi,

gibt es eine Möglichkeit den beiden Funktionen JsonDecode() // JsonEncode mitzuteilen Sie sollen auch die Ein- Ausgabe in UTF8 ausführen?
Und den Eingestellen Charset NICHT anwenden. MIt Datenbanken im UTF8 Zeichensatz gibts sonst Probleme.

Re: JsonDecode() // JsonEncode

Verfasst: Mo, 27. Jun 2022 15:50
von Lewi
Im Frontend sollte man immer mit UTF-8 arbeitet, weil sonst JS-Laufzeitfehler kaum nachvollzogen werden können.
Im XBase++ Backend wirst Du um das Schreiben einer Konvertierungroutine für Datenbankdaten von ASCII nach UTF-8 (und zurück) kaum rum kommen können.

Re: JsonDecode() // JsonEncode

Verfasst: Di, 28. Jun 2022 5:36
von ramses
Es geht nicht mal um die Datenbank die läuft unter UTF8. Es geht nur um die Json de- und entcode Funktion. Die beiden in Xbase führen immer auch einen Wandel ANSI 《--》UTF8 durch was dann bei Zeichen die schon UTF8 sind zu Mist und Fehlern führt.

Da ist es wohl wie du schreibst nötig selbst Hand anzulegen.

Re: JsonDecode() // JsonEncode

Verfasst: Di, 28. Jun 2022 21:09
von Lewi
Wäre dann nicht die Funktion UTF82Char(<utf8String>) die Lösung?
Und die gegenteilige Funktion: Char2UTF8( <cString>] )

Re: JsonDecode() // JsonEncode

Verfasst: Do, 30. Jun 2022 6:07
von ramses
Lewi hat geschrieben: Di, 28. Jun 2022 21:09 Wäre dann nicht die Funktion UTF82Char(<utf8String>) die Lösung?
Und die gegenteilige Funktion: Char2UTF8( <cString>] )
Nein eben nicht. Der String soll UTF8 bleiben er darf nicht umgewandelt werden den in ANSI oder OEM gibt es die enthaltenen Zeichen nicht das dann bedeutet: Datenverlust.

Re: JsonDecode() // JsonEncode

Verfasst: Do, 30. Jun 2022 16:01
von Lewi
Verstehe ich nicht! Laut xBase++ Doku wird ein String nach UTF8-codiert und in ein JSON-Objekt transformiert:

The JsonEncode() function converts an Xbase++ character string into JavaScript Object Notation (JSON) text conforming to RFC 7159, Section 7. The returned string is UTF-8 encoded. However, certain characters such as the quotation mark are escaped in the JSON string. These escaped characters appear in the notation "\uXXXX". XXXX is a four-digit hexadecimal number which identifies the corresponding Unicode code point.

Re: JsonDecode() // JsonEncode

Verfasst: Fr, 01. Jul 2022 7:32
von ramses
Lewi hat geschrieben: Do, 30. Jun 2022 16:01 The JsonEncode() function converts an Xbase++ character string
Genau das soll er nicht!
Ein Xbase String ist üblicherweise ANSI oder OEM Codiert dies wandeln die Funktionen in UTF8 UND Json um.
Soweit so gut.

Meine Strings im Xbase Programm sind aber schon UTF8 codiert. Die dürfen nicht nochmals gewandelt werden sonst kommt Müll heraus.
Genau das ist ja jetzt mein Problem!

Re: JsonDecode() // JsonEncode

Verfasst: Fr, 01. Jul 2022 7:38
von Jan
Carlo,

mal Alaska fragen?

Jan

Re: JsonDecode() // JsonEncode

Verfasst: Fr, 01. Jul 2022 11:33
von ramses
Hallo Jan

gute Idee. Da habe ich jetzt mal ein Frage-Mail hingesendet.