Deutsche Umlaute
-
Hallo,
wenn ich Stringliterale im Programmtext mit deutschen Umlauten habe, dann erscheinen die Umlaute auf der Konsole ja nicht ohne weiteres richtig.
Es gibt ja eine Menge Alternativen, eine ist es, die Windowsfunktionen CharToOem/OemToChar für Ein- Ausgabe zu verwenden.Meine Frage ist: Wieso funktioniert es nicht, via SetConsoleCP/SetConsoleOutputCP eine passende Codepage zu wählen? Ich meine, das Wählen einer Codepage klappt schon, aber auf die Ausgabe der Umlaute scheint das keine Auswirkung zu haben ...
-
Hier: http://www.c-plusplus.net/forum/viewtopic-var-t-is-39326.html findest du alles zu Deutschen Umlauten in der Konsole...
-
Hilf mir bitte, die Antwort auf meine Frage finde ich da nicht. Kannst Du die ensprechende Stelle vielleicht hier noch einmal wiederholen?
-
Meine Frage ist: Wieso funktioniert es nicht, via SetConsoleCP/SetConsoleOutputCP eine passende Codepage zu wählen?
Das Orakel ist im Winter geschlossen.
Das Problem hatten wir neulich im ANSI-Forum:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-230698-and-postdays-is-0-and-postorder-is-asc-and-start-is-10.html
-
flamer schrieb:
Meine Frage ist: Wieso funktioniert es nicht, via SetConsoleCP/SetConsoleOutputCP eine passende Codepage zu wählen?
Das Orakel ist im Winter geschlossen.
Das Problem hatten wir neulich im ANSI-Forum:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-230698-and-postdays-is-0-and-postorder-is-asc-and-start-is-10.htmlorakel hin, thread her-die frage bleibt unbeantwortet
-
Danke schön, Kakko.
Leider gibt es immer wieder Leute, denen es ein Bedürfnis ist, IRGENDWAS zu schreiben, ob es nun mit der Frage des Threaderstellers zu tun hat, oder auch nicht, oder auch nur weit entfernt ...
-
oder auch nur weit entfernt ...
Oder aber doch eine Lösung, aber der ***** ist zu faul zum Lesen.
Also: Codepage 850: ä = 0x84
Codepage 1252: ä = 0xe4
-
Trotzdem ergibt das hier:
#include <windows.h> #include <stdio.h> int main() { SetConsoleOutputCP(1252); SetConsoleCP(1252); printf("äöü"); }
nicht das gewünschte Ergebnis, obwohl im Konsolenfenster die Abfrage via mode ergibt, daß erfolgreich auf 1252 umgeschaltet wurde.
-
Belli schrieb:
Trotzdem ergibt das hier:
#include <windows.h> #include <stdio.h> int main() { SetConsoleOutputCP(1252); SetConsoleCP(1252); printf("äöü"); }
nicht das gewünschte Ergebnis, obwohl im Konsolenfenster die Abfrage via mode ergibt, daß erfolgreich auf 1252 umgeschaltet wurde.
Musst halt noch "Lucida Console" als Schriftart für das Kosolenfenster dazunehmen.
-
die ist doch von haus aus drinnen, ey
-
Da fällt mir nurmehr ein: OMG.
Und welchen Zeichensatz dein Editor gerade annimmt, sagt mir
das Orakel?
Also nocheinmal, und noch deutlicher:#include <windows.h> #include <stdio.h> int main() { SetConsoleOutputCP(1252); SetConsoleCP(1252); putchar(0xe4); }
-
flamer schrieb:
Da fällt mir nurmehr ein: OMG.
Und welchen Zeichensatz dein Editor gerade annimmt, sagt mir
das Orakel?
Also nocheinmal, und noch deutlicher:#include <windows.h> #include <stdio.h> int main() { SetConsoleOutputCP(1252); SetConsoleCP(1252); putchar(0xe4); }
Ausgabe:
õ
-
Seltsam. Bei mir hat das hingehaut.
Versuch's mal so:#include <windows.h> #include <stdio.h> int main() { SetConsoleOutputCP(850); //~ SetConsoleCP(1252); putchar(0x84); }
Außderdem:
http://de.selfhtml.org/inter/sprache.htm
-
Hi!
Welche Windowsversion hast du?
Bei mir funzt das so ( Windows XP ):int _tmain ( void ) { //.. system("chcp 1252"); puts("Brüderchen, check this out: öäüÜÄÖöööööö!"); //..
Oder wahlweise so:
int _tmain ( void ) { //.. puts(setlocale(LC_ALL,"")); puts("Brüderchen, check this out: öäüÜÄÖöööööö!"); //..
Gruß,
B.B.
-
Welche Windowsversion hast du?
Lies: was hast du mit deiner Registry gemacht?