Umlaute unter Linux
-
Halloo, hab da eine ganze dumme Frage
Und zwar wie gebe ich Umlaute aus in C unter Linux?
mit:printf("Text wird ge%cffnet",148);
geht es nicht, wird das ö nicht angezeigt
-
Probier mal:
puts("Text wird geöffnet");
Falls das überraschenderweise nicht funktionieren sollte: Ist dein Terminal überhaupt so eingestellt, dass es Umlaute ausgeben kann? UTF-8 sollte eigentlich Standardeinstellung sein, aber man sieht immer wieder mal Terminals, die tatsächlich noch auf ASCII eingestellt sind (da gibt es keine Umlaute).
-
Hab jetzt uft-8 eingestellt, dankeschön
Es funktionieren alle normalen Zeichen, aber Sonderzeichen wie ä,ü,ö funktionieren weiterhin nicht
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (C89 und C99) in das Forum Themen rund um die IT verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Hat sich erledigt
Hab hier im Forum nochmal gesucht und eine schöne Anleitung gefunden
-> http://www.c-plusplus.net/forum/39326-full
-
Gast23 schrieb:
Hat sich erledigt
Hab hier im Forum nochmal gesucht und eine schöne Anleitung gefunden
-> http://www.c-plusplus.net/forum/39326-fullWenn das funktioniert, hätte dein erster Versuch eigentlich auf Anhieb funktionieren sollen. Außerdem sollte mein Beispiel dann erst recht funktionieren (außer du speicherst den Quellcode in einer anderen Codierung).
-
Gast23 schrieb:
Hat sich erledigt
Hab hier im Forum nochmal gesucht und eine schöne Anleitung gefunden
-> http://www.c-plusplus.net/forum/39326-fullIch finde den Tipp in dem Link Blödsinnig.
Denn was ist denn, wenn der Nutzer eine völlig andere Codepage geladen hat?
Ja, dann stellt das Programm Müll dar.Deswegen ist die einzige richtige Lösung folgende:
1. Das System Abfragen welche Codepage gerade aktiv ist.
2. Und dann, je nach verwendeter Codepage entweder die Ausgabe als reines 127 Zeichen ASCI ausgeben oder die aktive Codepage berücksichtigen und daraus dann die passenden Zeichen ausgeben.
Dadurch könnte man ein ä also auch noch auf Systemen darstellen, die
weder UTF-8, noch irgendeine typisch deutsche Codepage geladen haben.
Und das geht dann entweder so, dass man das ä dann als ae ausgibt
oder eben die richtige ANSI Codesequenz für das Zeichen ä auswählt, sofern es in der aktiven Codepage vorhanden ist.
Die Ausgabe als reines 127 ASCII wäre somit der Rückfallmodus.
-
Das Beispiel ging auch nicht, war nur gleich froh als ich was gefunden hatte
Hab es jetzt so gemacht:
printf("Text wird ge%sffnet","ä");
Damit geht es wenigstens