XML Datenbank Konsolenausgabe und Encoding



  • Hallo,

    ich schreibe an einem C++ Programm in Windows7 mit dem ich auf eine BaseX Datenbank zugreife und einige Werte über die Konsole ausgebe. Ich nutze die BaseXClient API von https://github.com/JohnLeM/BasexCPPAPI/. Es funktioniert soweit auch alles. Nach einer Abfrage werden mir die Ergebnisse in einer string Liste zurückgegeben. Das Problem ist, dass die XML Daten aus der Datenbank Umlaute und Sonderzeichen enthalten wie das Grad Zeichen.

    Die XML Daten sind in UTF 8 codiert. In meinem Programm habe ich die locale mit std::setlocale(LC_ALL, ""); gesetzt,sowie die code page der Console mit chcp 65001 auf utf 8 umgestellt. Alle neuen strings mit den genannten Symbolen die ich mit der Konsole ausgebe werden auch korrekt dargestellt. Nur bei der Datenbankausgabe werden die Symbole nicht richtig dargestellt.
    Die API verwendet den pugixml Parser bei dem ich auch schon versucht habe mit pugi::xml_encoding::encoding_utf8 (oder _auto); das Poblem zu beheben. Ich weiß leider nicht mehr weiter und brauche Hilfe.

    Vielen Dank schonmal.



  • Alle neuen strings

    Neu? Was bedeutet das? Was ist dann alt?

    Du hast kein Problem mit C++ sondern mit deinem Datenbank-API. Du solltest deine Frage in einem Forum stellen, das sich damit befasst.


Anmelden zum Antworten