wide char File einlesen



  • Moin,

    ich bin nicht sehr erfahren im Programmieren und stehe vor einem (fuer mich) schwierigen Problem.

    Es handelt sich um Datenbankfiles eines Programmes die ich auswerten möchte. Sie beeinhalten XML Strukturen aber leider sind sie sehr seltsam kodiert.

    Hier mal ein Auszug (Sorry ich finde keine "spoiler" Funktion):

    ĐĎࡱá >  ţ˙     o  ţ˙˙˙  m n | } ~ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙R o o t E n t r y   ˙˙˙˙˙˙˙˙ –‚OHÎq Ŕ V 0 0 0 0 1 . X M L  ˙˙˙˙˙˙˙˙˙˙˙˙  µ V 0 0 0 0 4 . X M L  ˙˙˙˙ ˙˙˙˙ 8 ˜ V 0 0 0 0 3 . X M L    ˙˙˙˙  ä p ý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙R o o t E n t r y   ˙˙˙˙˙˙˙˙ `ô -HÎ @ V 0 0 0 0 1 . X M L  ˙˙˙˙˙˙˙˙˙˙˙˙  Äł V 0 0 0 0 4 . X M L  ˙˙˙˙ ˙˙˙˙ 8 @ V 0 0 0 0 3 . X M L    ˙˙˙˙  ä ˙˙˙˙˙˙˙˙ ý˙˙˙ţ˙˙˙ţ˙˙˙ 

       ţ˙˙˙ý˙˙˙ý˙˙˙            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  € V 0 0 0 0 5 . X M L   ˙˙˙˙˙˙˙˙˙˙˙˙ ä ˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙ ˙˙˙˙˙˙˙˙˙˙˙˙        

                  ţ˙˙˙   ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 ţ˙˙˙9 : ; < = > ? @ A B C D E F G H I J K L M N O P ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ< ? x m l v e r s i o n = " 1 . 0 " e n c o d i n g = " U T F - 1 6 " ? >

    < a d r e s s e n >

    < k u n d e n a d r i d = " R 0 4 " c r = " 4 0 2 4 3 , 6 6 7 7 7 6 6 3 1 9 " c r b y = " B E N U T Z E R " c h = " 4 1 0 4 3 , 0 7 2 1 0 9 2 2 4 5 " c h b y = " B E N U T Z E R " a d d r g r p = " S ü d " s p r a c h e = " d e _ D E " m a h n t y p = " 1 " >

    Sie beginnen also mit lauter "Müll" und die eigentlichen Daten sind alle scheinbar in einer 2-byte Kodierung. Alle mir bekannten Arten diesen File einzulesen (getline(), get() oder >>) produzieren nur Müll.

    getline() macht nach ~15 Zeichen Schluss, als sei der File am Ende
    get() und >> lassen willkürlich Zeichen "aus" (mir ist klar das es nicht wirklich willkürlich ist sondern ich zu doof bin)

    Auch als wchar_t habe ich es probiert das ging aber auch nicht.

    Kann mich jemand in die richtige Richtung stossen?

    Vielen Dank



  • Du möchtest std::ios_base::binary beim Öffnen der Datei benutzen, ansonsten landest du im Textmodus und dein OS versucht die Kodierung zu erraten und in "normalen" Text zu konvertieren, daher die unerwarteten EOFs und Sprünge.


Anmelden zum Antworten