Ö, Ü, Ä, im C++ Programm

Bastih84

Mitglied
Ist es möglich, dass ich auch Ö, Ü, Ä, mit meinem C++ Programm ausgebe Ich habe ein Parser geschrieben, funktioniert auch wunderbar, bis auf die Umlaute ö usw., hier gibt er nur wirres Zeug aus, wenn er sowas ausliest, ich hoffe ihr könnt mir wiedermal helfen

Danke schonmal
 
Also bei mir funktioniert das auch mit Umlauten wunderbar (OS: Linux, GCC 4.0.1). Welchen Compiler benutzt du denn, und welches Betriebssystem?

Hast du Beispielcode der nicht funktioniert?
 
moin


Für Umlaute würde ich mir einfach die entsprechnden Werte aus der Ascii Tabelle holen, und damit arbeiten.


mfg
umbrasaxum
 
Hi.

In ASCII gibt es aber keine Umlaute. Es kommt halt drauf an was für eine Codepage geladen ist (in DOS/DOS Fenstern?). Wer benutzt denn heut noch ASCII - meistens ist das doch ISO-8859-x.

Dann ist die Frage welche Kodierung der Eingabe-Kanal und welche der Ausgabe-Kanal verwendet. Unter Umständen muß man die Zeichen dann konvertieren.
 
Naja, also ASCII sind nur 7 Bits. D.h. 129, 132, 148 gibt es nicht im ASCII Code. Jetzt kommt es dann drauf an, was für eine ASCII Erweiterung man eingerichtet hat so das dann evtl. ein Umlaut angezeigt wird oder eben auch nicht.

Außerdem hab ich das ganze Problem so verstanden, das der Effekt dynamisch zur Laufzeit auftritt. Also, das Programm liest eine Datei ein (wahrscheinlich irgendeine ANSI Textdatei) und gibt dann wieder einen Text aus bei dem allerdings die Umlaute nicht mehr korrekt dargestellt werden (weil wahrscheinlich OEM-Erweiterung von ASCII). Da nützt es ja nu nix, wenn ich die Codes aus irgendeiner Tabelle Nr. 850 für die Umlaute kenne, oder?

Aber eigentlich kann nur Bastih84 wirklich Licht in das Dunkel bringen indem er mal etwas näher beschreibt was das Programm wirklich tut und in welcher Umgebung es das tut (also die Annahme ist ja bisher, das das Programm in einer Win32 Konsole läuft, oder?).
 
moin


Naja, also ASCII sind nur 7 Bits. D.h. 129, 132, 148 gibt es nicht im ASCII Code...
Ja, genau, deshalb muss man ein unsigned char benutzen danach sollte es gehen. Die ersten Zeichen, über 127, wie z.B. Umlaute sind eigentlich gleich.

Außerdem hab ich das ganze Problem so verstanden, das der Effekt dynamisch zur Laufzeit auftritt. Also, das Programm liest eine Datei ein (wahrscheinlich irgendeine ANSI Textdatei) und gibt dann wieder einen Text aus bei dem allerdings die Umlaute nicht mehr korrekt dargestellt werden (weil wahrscheinlich OEM-Erweiterung von ASCII). Da nützt es ja nu nix, wenn ich die Codes aus irgendeiner Tabelle Nr. 850 für die Umlaute kenne, oder?
Damit hast du absolut recht. Ich bin jetzt aber von einer Benutzereingabe in der Konsole ausgegangen.

Aber eigentlich kann nur Bastih84 wirklich Licht in das Dunkel bringen indem er mal etwas näher beschreibt was das Programm wirklich tut und in welcher Umgebung es das tut (also die Annahme ist ja bisher, das das Programm in einer Win32 Konsole läuft, oder?).
Japp, wieder richtig ;)
Also Basti, sieh mal zu.


mfg
umbrasaxum
 
Ja, hier bin ich, ich habe ein Programm, das einen DVB-Transportstrom ausliest, jetzt zeigt es mir allerdings statt z.B. Österreich 1 Îsterreich 1 an, das ganze under Windows in der Win32 Konsole
 
moin


Ja, dann hatte deepthroat recht.
Von welchem Dateityp (oder Endung) sind denn die Dateien?


mfg
umbrasaxum
 
Zurück