Waermeleitpaste Geschrieben 27. August 2004 Geschrieben 27. August 2004 Hab ne kleine Konsolenapplikation. Dummerweise spuckt mir das Ding Sonderzeichen wie Umlaute verändert aus, sprich andere Zeichen. Wie kann ich die normal ausgeben? Hab MS Visual C++ 6.0 Compiler. Zitieren
Klotzkopp Geschrieben 27. August 2004 Geschrieben 27. August 2004 Die Zeichen werden "normal" ausgegeben. Das Problem ist, dass du Zeichen benutzt, die nicht Bestandteil des ASCII-Zeichensatzes sind. Die sehen, je nach Codierung, anders aus. Und der Editor deiner Entwicklungsumgebung verwendet leider eine andere Codierung als die Konsole. Die Suchfunktion spuckt für "Umlaute" übrigens diesen Thread aus: http://forum.fachinformatiker.de/showthread.php?t=12579 Zitieren
calumoth Geschrieben 28. August 2004 Geschrieben 28. August 2004 Das Problem ist, das Windows in der Konsole eine andere Codepage verwendet, und zwar die Codepage 850. Windows selbst arbeitet jedoch mit dem ANSI Zeichensatz (Codepage 1252). Eine Übersicht über die wichtigsten Zeichensätze gibt es hier. Wenn du nun den Quelltext unter Windows schreibst und in einer printf-Anweisung ein "ö" schreibst, so wird dem Compiler gesagt, das später (nach Codepage 1252) das Zeichen Nr. 246 ausgegeben werden soll. Dieses Zeichen entspricht in der Konsole jedoch nicht mehr dem "ö", sondern nach Codepage 850 dem Zeichen "÷", welches dir dann auch korrekt ausgegeben wird. Um das Problem in den Griff zu bekommen sollte man wissen, welche Codepage vom System verwendet wird, und muss dann den dezimalen Wert des gewünschten Zeichens in der printf-Anweisung verwenden. Wenn man z.B. "zurück" in der Konsole ausgeben lassen möchte, muss die printf-Anweisung folgendermaßen aussehen: printf("zur[B][COLOR=Red]%c[/COLOR][/B]ck",129); Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.