Codpage(?)-Problem



  • Hallo mal wieder 🙂

    Hier mein Problem:
    Ich lese eine HTML-Datei aus, in der Umlaute und Sonderzeichen vorkommen. So z.B. - wie ich gerade festgestellt habe - das HEX-Zeichen 'A0' alias <NO BREAK SPACE> alias á (accent aigu - a mit Tütel links/unten nach rechts/oben).
    Die Interpretation ist anscheinend ja nach Codepage ANSI, ASCII 7 Bit, DOS 8 Bit Dos 7 Bit.

    Hier im Forum fand ich dieses Codebeispiel:

    #include <iostream>
    #include <windows.h>  // CharToOem
    using namespace std;
    
    int main(int argc, char* argv[])
    {
        char szUmlauteVorher[50] = "Ändern,Öffnen,Schließen,Üben";
        char szUmlauteNachher[50] = "";
    
        CharToOem(szUmlauteVorher,szUmlauteNachher);
    
        cout << "Hier der String vor der Konvertierung  = " << szUmlauteVorher << endl << endl;
    
        cout << "Hier der String nach der Konvertierung = " << szUmlauteNachher << endl;
    
    	char pause;
    	cin >> pause;
        return 0;
    }
    

    In einem neuen, leeren Projekt funzt das auch, wenn man für die Einstellung 'Allgemein\Zeichensatz' 'nicht festgelegt' oder 'Multi-Byte Zeichensatz verwenden' einstellt. Nur 'Unicode' funzt nicht, weil dann Compile-Fehler kommen.

    Nun will ich den Code aber in einem anderen Projekt benutzen, dass noch diverse andere Sourcen heranzieht.
    Mit 'Unicode' wird auch hier nicht kompiliert. Die beiden anderen Einstellungen kompilieren zwar, funktionieren aber nicht.

    Woran liegt das, was mache ich falsch? 😕
    Kann man die Compiler-Einstellungen auch umgehen und die Codepage fest im Code mitgeben?

    Auch wenn 2. beantwortet wird (*hoff!*), so interessiert mit 1. natürlich trotzdem.

    DANKE!!



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hat denn niemand ein paar Tips für mich?! 😮



  • TCHAR szUmlauteVorher[50] = TEXT("Ändern,Öffnen,Schließen,Üben");
    TCHAR szUmlauteNachher[50] = TEXT("");
    
    CharToOem(szUmlauteVorher,szUmlauteNachher);
    


  • Werd ich versuchen, danke *Unbekannter* 😉

    Neee, nutzt auch nichts. Gleiches Problem!


Anmelden zum Antworten