none
Unicode in Windows Konsole (C++ Native) RRS feed

  • Frage

  • Hallo zusammen !

    Ich versuche unter C++ Native diese Unicode in Win Konsole anzuzeigen: http://stosberg.net/unicode/domino-tiles/block/193/

    Leider scheitern meine versuche, mit diese Code bekomme ich fehler, dass wcout und _O_U16TEXT nicht deklariert:

    #include <iostream>
    #include <string>
    #include <stdio.h>
    #include <io.h>    // for _setmode()
    #include <fcntl.h> // for _O_U16TEXT
    
    
    using namespace std;
    
    
    
    int main()
    {
    
        _setmode( _fileno( stdout ), _O_U16TEXT );
         wchar_t ch = 0x03b1;
         wcout << ch;
    
       
    } 

    Mit diese Code bekomme ich falsche ergebnisse:

    #include <windows.h>
    #include <stdlib.h>
    
    void writeAnsiChars(HANDLE stdout)
    {
        // SetConsoleOutputCP(1252);
    
        char *ansi_pound = "\x1f";
        WriteConsoleA(stdout, ansi_pound, strlen(ansi_pound), NULL, NULL);
    }
    
    void writeUnicodeChars(HANDLE stdout)
    {
        wchar_t *arr[] =
        {
            L"\u1f030", 
            L"\u1f036", 
            L"\r\n",   //CRLF
            0
        };
    
        for(int i=0; arr[i] != 0; i++)
        {
            WriteConsoleW(stdout, arr[i], wcslen(arr[i]), NULL, NULL);
        }
    }
    
    int main()
    {
        HANDLE stdout = GetStdHandle(STD_OUTPUT_HANDLE);
        if(INVALID_HANDLE_VALUE == stdout) return 1;
    
        writeAnsiChars(stdout);
        writeUnicodeChars(stdout);
    
        return 0;
    }
    Kann mir jemand zeigen wie ich unter C++ Native Unicode in Win.Konsole anzeige lasse oder wo liegt in meine Source fehler vor ?



    • Bearbeitet API Checker Samstag, 29. September 2012 12:27
    Samstag, 29. September 2012 12:25

Antworten

  • >weil GNU Kompiler

    Sag das doch gleich... dann solltest Du aber in einem GNU-Forum posten und nicht hier ;)


    Jochen Kalmbach (MVP VC++)
    • Als Antwort markiert API Checker Sonntag, 30. September 2012 14:25
    Sonntag, 30. September 2012 09:31
  • Ok, Danke für die Hilfe und guten Ansatz mit Fonts, werde mich umschauen.

    • Als Antwort markiert API Checker Sonntag, 30. September 2012 14:26
    Sonntag, 30. September 2012 14:25

Alle Antworten

  • > Kann mir jemand zeigen wie ich unter C++ Native Unicode in Win.Konsole anzeige lasse

    http://blog.kalmbachnet.de/?postid=98

    Du musst aber auch noch sicherstellen, dass Du einen Unicode-fähigen Font verwendest!


    Jochen Kalmbach (MVP VC++)
    Samstag, 29. September 2012 19:44
  • @ Jochen Kalmbach-:

    Morgen ! Ja stimmt, die Schriftarten sind bei mir nicht installiert, also wird auch nicht funz.

    Code in deinem Link, das ist der gleiche code was ich gepostet habe, er zeigt den gleichen fehler, weil GNU Kompiler kennt diese

     _O_U16TEXT

    nicht. Ich progge in Code::Blocks (C++ Native). Mich würde aber trotzdem interessieren wie ich ASCII zeichen in Konsole ausgeben kann ?

    Sonntag, 30. September 2012 08:04
  • >weil GNU Kompiler

    Sag das doch gleich... dann solltest Du aber in einem GNU-Forum posten und nicht hier ;)


    Jochen Kalmbach (MVP VC++)
    • Als Antwort markiert API Checker Sonntag, 30. September 2012 14:25
    Sonntag, 30. September 2012 09:31
  • Ok, Danke für die Hilfe und guten Ansatz mit Fonts, werde mich umschauen.

    • Als Antwort markiert API Checker Sonntag, 30. September 2012 14:26
    Sonntag, 30. September 2012 14:25