Umlaute bei Konsolenanwendungen
Hallo,
muss man bei einer Konsolenanwendung in C++ (XE6) zur Ausgabe eines Umlautes weiter so vorgehen:
Code:
oder kann man in der IDE irgendetwas einstellen, so dass in der Windowskonsole das richtige ausgegeben wird, wenn man:
const unsigned char UE = static_cast<unsigned char>(154);
... cout << UE << "bung macht den Meister!" << endl;
Code:
schreibt?
cout << "Übung macht den Meister!";
|
AW: Umlaute bei Konsolenanwendungen
Mit CharToOem (und OemToChar für die andere Richtung) kann man zwischen den beiden Zeichensätzen konvertieren.
|
AW: Umlaute bei Konsolenanwendungen
Besser CharToOEMBuf, siehe Waenhinweis
|
AW: Umlaute bei Konsolenanwendungen
Man kann auch gern TEncoding verwenden, oder man definiert sich einen String mit der OEM-CodePage und nutzt die automatischen Konvertierungen. (müsste in C++ genauso gehn, wie in Delphi)
|
AW: Umlaute bei Konsolenanwendungen
Man kann der Console auch sagen welcher Zeichensatz für die Ausgabe benützt werden soll.
SetConsoleOutputCP() Ich hab's noch nie getestet aber mir scheint das ist die eleganteste Lösung für das Umlautproblem. Bitte kurze Info hier im Forum ob's funtkioniert weil ich könnte das für ein altes C++ Programm gebrauchen ;-) |
AW: Umlaute bei Konsolenanwendungen
Zitat:
Code:
versucht, die Header Datei dazu einzubinden, bekomme aber gleich Fehler, z.B.:
#include <Wincon.h>
Zitat:
Im Moment habe ich folgende Lösung, die funktioniert:
Code:
setlocale(LC_ALL,"de_DE"); wcout << "Hallo Welt, schönes Wetter"; |
AW: Umlaute bei Konsolenanwendungen
Zitat:
Ach ja C++ mit seinen Includedateien ist halt eine Qual. Die Lösung mit setlocale() ist aber auch ok; besser als eine Windows API Funktion aufrufen zu müssen. |
AW: Umlaute bei Konsolenanwendungen
Man könnte sich auch selber Input/Output-FileVariablen erstellen (AssignFile, CreateFile oder als FileStream),
oder die CodePage der Standard-Variablen (Input, Output, ErrOutput in System) ändern. SetTextCodePage Man kann die CodePage der Konsole ändern. SetConsoleCP / SetConsoleOutputCP Oder man passt Delphi an die Konsole an. Per GetConsoleCP die CodePage auslesen, Delphi als ANSI-CodePage zuweisen (DefaultSystemCodePage/SetMultiByteConversionCodePage, setlocale usw.) und vorallem bei Nicht-Unicode-Delphis noch SetFileApisToOEM (im Gegensatz zum Standard von SetFileApisToANSI). |
AW: Umlaute bei Konsolenanwendungen
Nur so fürs Protokoll :mrgreen:(ja, ich weiß dass hier nach C++ gefragt wurde :))
|
AW: Umlaute bei Konsolenanwendungen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz