wie bekomme ich ä, ü , ö und ß in Stringlisten ein??
-
code-page 850 und ansi-code: http://www.bar-computer.de/temp/ausgang/ASCII-Drucken.pdf
mngbd schrieb:
Wenn du unbedingt nur ein Byte pro Zeichen willst, empfehle ich ISO 8859-15. Wenn man nicht hardwareseitig eingeschränkt ist, sind sich alle einig, dass man UTF-* verwenden sollte:
http://de.wikipedia.org/wiki/UTF-8wie schaff ich das, dass mein code mit utf-.. codiert wird?
Ich dachte das hängt vom system ab.
rüdiger schrieb:
Wie die Umlaute genau kodiert sind hängt von dem von deinem System verwendeten Kodiersystem ab.
-
neo47 schrieb:
code-page 850 und ansi-code: http://www.bar-computer.de/temp/ausgang/ASCII-Drucken.pdf
Das ist Blödsinn, es gibt keine ANSI-Kodierung. Was es gibt, ist ISO 8859, das ist eine Familie von 1-Byte-Sätzen, die alle von 0 bis 127 mit dem ASCII-Satz übereinstimmen. Wenn du uralte DOS-Sätze haben willst: ich halte dich nicht weiter auf.
neo47 schrieb:
wie schaff ich das, dass mein code mit utf-.. codiert wird?
Deine Programme kodierst du selbst. Wie du das Ausgabegerät einstellen musst, damit es die gleiche Kodierung verwendet wie du, steht hoffentlich in der Anleitung. Im schlimmsten Fall musst du dich dem Ausgabegerät anpassen, oder es austauschen.
-
Im Falle der Windows-Konsole hast du da sehr schlechte Karten.
Das wird nämlich relativ schnell zu einer richtigen Qual. Die Windows-Konsole ist sozusagen ein Relikt aus der Vergangenheit und verhält sich auch so. Du musst schon einiges in Bewerbung setzen, damit du damit vernünftig arbeite kannst. Doch der Aufwand lohnt sich meistens nicht. Stattdessen ist es sinnvoller zu überdenken, ob man die Umlaute tatsächlich braucht bzw. wie man sie vermeiden kann. Auch ein GUI Framework (mit Unicode) wäre evtl. eine Möglichkeit.
-
Zwei Zeilen extra Code für die Unterstützung von Umlauten empfinde ich nicht als allzu qualvoll:
setlocale ( LC_ALL, "German" ); system ( "chcp 1252" ); // do your umlauts input/output stuff :) puts("äöüß"); fgets(buf, ...
-
Big Brother schrieb:
Zwei Zeilen extra Code für die Unterstützung von Umlauten empfinde ich nicht als allzu qualvoll:
setlocale ( LC_ALL, "German" ); system ( "chcp 1252" ); // do your umlauts input/output stuff :) puts("äöüß"); fgets(buf, ...
Muss man nicht ndoch zusätzlich die Schriftart der Konsole ändern?
-
Ist die aktuelle Schriftart Lucida Console dann nein, sonst ja.
Joooooo!
-
War da nicht was mit "CharToOem(...)" oder "OemToChar(...)"
Sorry ich weiss es nicht genau, schau halt mal nach.
-
system ( "chcp 1252" );
puts("äöüß");Ägypten?
Das soll laufen?
Der Prozess,welcher die Codepage ändert,ist doch längst beendet bei Aufruf von puts.
-
Big Brother schrieb:
setlocale ( LC_ALL, "German" ); system ( "chcp 1252" ); // do your umlauts input/output stuff :) puts("äöüß"); fgets(buf, ...
es funktioniert nur wenn ich den system() aufruf weglasse. Mit dem Systemaufruf ist wieder alles wie vorher, und es wird irgendetwas anderes ausgegeben.
Edit:
hab den Satz mit der Schriftart ändern übersehen. Ich hab die Schriftart jetzt geändert und siehe da es funktioniert.kann es sein das wenn ich die locale auf german stelle, automatisch die codepage 1252 verwendet wird, sonst würde es ja wie oben beschrieben ohne system() nicht funkionieren
-
Wutz schrieb:
Ägypten?
Rembrand?
Wutz schrieb:
Das soll laufen?
Ägypten?
Wutz schrieb:
Der Prozess,welcher die Codepage ändert,ist doch längst beendet bei Aufruf von puts.
Na, was für ein Glück!
Da soll ja auch kein zweiter Prozess nebenherlaufen, wir wollen doch Ressourcen schonen. Es soll lediglich die Codepage vor puts geändert werden. Nach einem puts ändert sich die eingestellte Codepage nicht selbständig. Das wäre ja ganz schön doof, ne, müsste man doch sonst vor jeder weiteren Ausgabe einen Systemaufruf machen.neo47 schrieb:
kann es sein das wenn ich die locale auf german stelle, automatisch die codepage 1252 verwendet wird, sonst würde es ja wie oben beschrieben ohne system() nicht funkionieren
Standardeinstellung ist Codepage 850. Die aktuelle Einstellung kannst du dir z.B. mit
system ( "chcp" ); anzeigen lassen (Oder eine Konsolenfunktion aus einer Bibliothek deines vertrauens benutzen).
-
Wollt ihr das nicht in den Windows-Foren besprechen?
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum ANSI C in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.