Ich mache diese einfache Ausgabe von einer Unicode-gebauten Konsolenanwendung (mit C++ und Visual Studio 2008). Dieser Code soll unter Windows laufen:_tprintf mit Unicode-Zeichen in einer Konsolenanwendung
_tprintf(L"Some sample string\n");
Alles funktioniert gut. Aber wenn ich ein Nicht-ASCII-Zeichen in es hinzuzufügen:
_tprintf(L"Some sample € string\n");
was auf die Konsole bekommt, ist alles bis zu diesem Zeichen:
Einig Probe
Was mache ich falsch Hier?
Dies liegt daran, dass Ihre Konsole dieses Zeichen nicht anzeigen kann. Die Konvertierung von Unicode in die 8-Bit-Codepage schlägt fehl und die Zeichenfolge wird abgeschnitten. Die Standard-Codepage für eine Konsole ist normalerweise 437, die alte IBM PC-Codepage, eine Maschine, die entworfen wurde, bevor Europa seine neue Währung annahm. Sie müssen die Konsole auf eine andere Codierung umstellen, die das Zeichen SetConsoleOutputCP() enthält. –
Ich habe gerade versucht, 'SetConsoleOutputCP (1200);' vor diesem Anruf und nichts geändert. – ahmd0
geben Sie _setmode (_fileno (stdout), _O_WTEXT); ein Versuch – Cubbi