Wie kann ich drucken Sie UTF-8 aus c++ - Konsolenanwendung unter Windows
Für eine C++ - Konsolenanwendung kompiliert mit Visual Studio 2008 auf Deutsch Windows (XP,Vista oder 7). Ist es möglich, drucken Sie auf die Konsole und zeigen nun korrekt in UTF-8 codiert Japanisch mit cout oder wcout?
Es gibt einen interessanten thread auf cplusplus.com : UTF-8 in der Eingabeaufforderung (Konsole) cplusplus.com/forum/windows/9797
Neueinsteiger: Überprüfen Sie meine Antwort hier auf die Verwendung von unicode - und check Antwort auf die änderung der Konsolen-schriftart.
Neueinsteiger: Überprüfen Sie meine Antwort hier auf die Verwendung von unicode - und check Antwort auf die änderung der Konsolen-schriftart.
InformationsquelleAutor Paul Dixon | 2009-09-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Windows-Konsole verwendet die OEM-Codepage standardmäßig auf display-Ausgang.
Ändern Sie die Codepage auf Unicode eingeben
chcp 65001
in der Konsole, oder versuchen Sie die code-Seite ändern programmgesteuert mitSetConsoleOutputCP
.Beachten Sie, dass Sie wahrscheinlich haben, um die schriftart zu ändern in der console eine, die Glyphen im unicode-Bereich.
InformationsquelleAutor dtb
Hier ist ein Artikel von MVP Michael Kaplan , wie die korrekte Ausgabe von UTF-16 durch die Konsole. Sie könnte konvertieren UTF-8, UTF-16 und-Ausgang.
Dieser link bringt Sie zu Resource Nicht Gefunden.
Als der 2016-08-09, der link leitet auf archives.miloush.net/michkap/archive/2008/03/18/8306597.html, aber es ist material vorhanden (vermutlich das, was ursprünglich an siao2.com).
Permalink: web.archive.org/web/20131118014725/http://blogs.msdn.com/b/...
InformationsquelleAutor sbi
Ich habe eigentlich nie versucht, die Einstellung der Konsolen-Codepage auf UTF8 (nicht sicher, warum es würde nicht funktionieren... die Konsole kann mit anderen multi-byte-code-Seiten problemlos), aber es gibt ein paar Funktionen zum nachschlagen: SetConsoleCP und SetConsoleOutputCP.
Werden Sie wahrscheinlich auch brauchen, um sicherzustellen, dass Sie eine Konsole schriftart, die fähig ist, der Darstellung Ihrer Charaktere. Es gibt die SetCurrentConsoleFontEx Funktion, aber es ist nur auf Vista und höher.
Hoffe, das hilft.
InformationsquelleAutor ijprest
Sollte dies funktionieren:
Weiß nicht, ob es wirkt nichts, aber Quell-Datei gespeichert wird, als Unicode (UTF-8 mit Signatur) - Codepage 65001 bei DATEI -> Erweiterte Speicheroptionen ....
Projekt -> Eigenschaften -> Konfiguration Eigenschaften -> Allgemeinen -> Zeichensatz eingestellt ist die Verwendung der Unicode-Zeichensatz.
Einige sagen, Sie brauchen, um zu ändern-Konsole-Schrift zu Lucida Console, aber auf meiner Seite wird Ihnen angezeigt, mit beiden Consolas und Lucida Console.
InformationsquelleAutor Slav
Auf app starten, console auf "Standard" gesetzt OEM437 CP.
Ich habe versucht, die Ausgabe von Unicode-text auf stdout, wo die Konsole Umschalten auf UTF8 übersetzung _setmode(_fileno(stdout), _O_U8TEXT); und hatte noch kein Glück auf dem Bildschirm auch mit Lucida TT font.
Wenn die Konsole umgeleitet wurde, um die Datei, die korrekte UTF8-Datei erstellt wurden.
Endlich hatte ich Glück. Ich habe Hinzugefügt, single line " - info.FontFamily = FF_DONTCARE;" und es funktioniert jetzt.
Hoffe, diese Hilfe für Sie.
InformationsquelleAutor adspx5
Nur für zusätzliche Informationen:
'ANSI' bezieht sich auf die windows-125x, verwendet für win32-Anwendungen, während 'OEM' bezieht sich auf die verwendete code-Seite von Konsole/MS-DOS-Anwendungen.
Aktuelle aktive code-Seiten abgerufen werden können, mit Funktionen GetOEMCP() und GetACP().
Zur Ausgabe etwas richtig in die Konsole, man soll:
damit die aktuelle OEM-Codepage unterstützt die Zeichen, die Sie ausgeben möchten
(wenn nötig, verwenden Sie SetConsoleOutputCP, um es richtig)
konvertieren Sie die Zeichenfolge von der aktuellen ANSI-code (win32), um die Konsole OEM-Codepage
Hier sind einige utilities zur Verfügung:
InformationsquelleAutor Cédric Françoys
In der Konsole eingeben
chcp 65001
ändern Sie die Codepage zu UTF-8.InformationsquelleAutor Alan Haggai Alavi