Schnittstelle von C++ zu XSD zur Erkennung von Encoding?



  • Hallo erst mal,

    Ich programmiere zurzeit in Visual Studio mit C++ und lese den content aus xsd-Dateien und erzeuge daraus xml-Dateien, woraufhin die Ergebnisse im Browser angezeigt werden.

    Nun geht es darum, zu ermitteln, welche Encodings in den xsd-Dateien verwendet werden, um darauf reagieren zu können, also diese dementsprechend konvertieren zu können.

    Jetzt suche ich nach einer Schnittstelle (falls es z. B. von c++ boost.locale supported wird), die die Kodierung automatisch erkennt, damit ich diese dann von z. B. Ansi nach UTF-8 konvertieren kann.

    Wenn jemand sowas schon ausprobiert hat, wäre ich über eine kleine Hilfe mit Beispielen dankbar! 🙂

    Liebe Grüße



  • unregistriert schrieb:

    lese den content aus xsd-Dateien und erzeuge daraus xml-Dateien

    Evtl. steh ich grad komplett auf dem Schlauch, aber mir ist nicht klar, was du meinst. xsd sind für mich Schemadefinitionen, da sind keine Daten drin. Und mir ist auch nicht klar, wo hier irgendwelche Encoding ins Spiel kommt. Kannst du irgendwie genauer erklären, was du machst?



  • entschuldige Bitte, statt "xsl" habe ich "xsd" geschrieben. War mein Fehler 😮
    Wie gesagt, ich arbeite mit [code="cpp"] und lese "css" Dateien aus. Dafür greife ich auf die "xsl" Dateien und erzeuge daraus "xml" Dateien.

    Am Anfang steht immer der encoding:

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:template match="/">
    <html lang="en">
    <head>
    <link rel="stylesheet" href="MessageFilter.css" />
    <title>MessageFilter, All messages</title>
    </head>
    <body>
    ...
    <body>
    </xsl:template>
    </xsl:stylesheet>

    Nach ähnlichen Lösungen wie diese habe ich bereits gesucht:

    [url] https://social.msdn.microsoft.com/Forums/de-DE/791f1c10-dc07-4d97-a7e0-03a65a64c841/kodierung-einer-textdatei-erkennen?forum=visualcsharpde

    [/url] http://stackoverflow.com/questions/20746772/how-to-correctly-determine-character-encoding-of-text-files

    Ich hoffe es ist etwas verständlicher geworden.



  • Ok, ein bisschen verständlicher ist es schon geworden, aber es geht noch besser 😉

    Wie liest du die Dateien ein? Das kann Standard C++ nicht, also welche Bibliothek verwendest du?
    Und wegen dem Encoding, steht das

    <?xml version="1.0" encoding="UTF-8"?>

    tatsächlich drin und du weißt nur nicht, wie du das auslesen kannst, oder fehlt diese Angabe und musst raten, welches Encoding verwendet wurde?



  • Musst du mit C++ arbeiten? Bzw. gibt es gute Gründe für C++ bzw. gegen C#?
    Wenn es bei den Teilen die nicht direkt mit dem Schreiben/Bearbeiten/Lesen von XML zu tun haben nix gibt was in C# zu umständlich würde, dann würde ich dir nämlich zu C# raten.
    Weil das ganze hantieren mit XML mit dem .NET Framework halt super-easy ist. In C++ dagegen eher mühsam.


Anmelden zum Antworten