Erweiterter ASII Zeichensatz



  • Hallo!

    Ich habe folgendes Problem: Ich möchte eine Text Datei auslesen.. Wenn ich mir die Text Datei jetzt mit meinem Proramm anzeigen lasse werden Zeichen wie Umlaute usw. nicht richtig angezeigt weil sie ja nach dem Windows Zeichensatz codiert sind..

    Wie kann ich das umgehen das ich trotzdem in meinem Programm die normalen Windows Zeichen anzeige??



  • Du musst einfach nur die Umlaute abfangen und durch die richtigen Zeichencodes ersetzen. Das hier könnt dir helfen:

    const unsigned char AE=static_cast <unsigned char> (142);
    const unsigned char ae=static_cast <unsigned char> (132);
    const unsigned char OE=static_cast <unsigned char> (153);
    const unsigned char oe=static_cast <unsigned char> (148);
    const unsigned char UE=static_cast <unsigned char> (154);
    const unsigned char ue=static_cast <unsigned char> (129);
    const unsigned char ss=static_cast <unsigned char> (225);
    

    Jetzt kannst du folgendes tun:

    const unsigned char foo[7] = { 'Ä', 'Ö', 'Ü', 'ä', 'ö', 'ü', 'ß' }
    const unsigned char bar[7] = { AE, OE, UE, ae, oe, ue, ss }
    for(int i = 0; i < 7; ++i)
    {
        string::pos_type pos = text.find(foo[i], 0);
        while(pos != string::npos)
        {
            text[pos] = bar[i];
            pos = text.find(foo[i], pos + 1);
        }
    }
    


  • Also ich will ja nicht nur alle Umlaute abfangen..

    Wenn ich zb. eine EXE datei einlese möchte ich die auch korrekt darstellen können.



  • Was bitte willst du 😮 😕



  • Also wenn ich eine datei unter windows betrachte sieht die anders aus als unter dos
    wegen den verschiednen zeichensätzen (steuerzeichen,umlaute,sonderzeichen usw)

    Und ich will halt mit meinem programm eine datei die ich unter windows gespeichert habe auch komplett richtig anzeigen können



  • Dann ersetz alles Zeichen. Den ASCII-Zeichensatz findest du unter http://www.asciitable.com/ und den Windows-Zeichensatz unter Start -> Programme -> Zubehör -> Systemprogramme -> Zeichentabelle.



  • Ups, ich seh erst jetzt, dass ich hier im C-Forum bin. Dann kannst du natürlich nicht std::string benutzen.


Anmelden zum Antworten