Beim Versuch, Unicode-Zeichen mit cout in C an die Windows-Konsole auszugeben werden stattdessen seltsame Zeichen angezeigt. Warum tritt das auf und ist es möglich, Unicode-Zeichen korrekt anzuzeigen?
Das Problem ergibt sich aus dem Standardverhalten der Windows-Konsole, die keine Unicode-Ausgaben verarbeitet. Um dieses Problem zu beheben, kann der Breitzeichen-Ausgabestream std::wcout anstelle von cout verwendet werden.
#include <iostream> int main() { std::wcout << L"Hello World!" << std::endl; return 0; }
Selbst mit std::wcout kann die Konsole jedoch möglicherweise immer noch keine Unicode-Ausgaben verarbeiten. Um dieses Problem zu beheben, kann die Konsole manuell konfiguriert werden.
So konfigurieren Sie die Konsole manuell:
Eine andere Lösung ist die Verwendung _setmode(_fileno(stdout), _O_U16TEXT);. Diese Funktion erfordert die Einbindung von fcntl.h und io.h und ermöglicht dem Ausgabestream die Verarbeitung von Unicode-Zeichen.
Das obige ist der detaillierte Inhalt vonWie kann ich mit C Unicode-Zeichen in der Windows-Konsole korrekt anzeigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!