Umlaute in txt-Datei darstellen
-
Wie kann man das machen?
Hab leider keine zeit zum Googlen. kann mir da einer Helfen?
-
Meinst du sowas?
#include <fstream> using namespace std; int main() { ofstream s( "was.txt" ); s << "Hä?"; s.close(); return 0; }
Gruß
Dobi
-
im Prinzip schon, aber die Umlaute werden in der Konsole mit getline eingelesen!
Aus ÄÖÜäöüß Wird Ž
š„”á
Hat einer ne Ahnung?
-
Das Beispiel von Dobi müsste eigentlich funktionieren.
Ansonsten kannst du auch anstatt der Umlaute die jeweiligen Codes benutzen:cout << "\x84 \x94 \x81"; //äöü
-
Nein! der String wird über die Konsole eingelesen! die stehen NICHT!!!! im Code!
-
Ja, mit der Windows-Konsole geht das nicht so einfach, die verwendet einen anderen Zeichensatz, als der Editor. Wenn du auf der Kommandozeile
type <Pfad\zu\deiner\datei>
eingibst sollten die Umlaute richtig dargestellt werden.
Ansonsten müsstest du eine Konvertierungsfunktion schreiben die die entsprenden Zeichen der Konsolen-Codepage (normalerweise bei deutsch 850) nach ANSI konvertiert.
-
Ah ok, die Windows-Konsole. Hab mich schon gewundert. Bei mir funktioniert das hier
#include <fstream> #include <iostream> #include <string> using namespace std; int main() { string in; cin >> in; ofstream s( "was.txt" ); s << in; s.close(); return 0; }
nämlich auch wunderbar wenn ich Umlaute eingebe.
Die Codepage für die Win-Konsole kannst du entweder über die Registry, die Kommandozeile selbst oder die WinAPI setzen:
http://msdn.microsoft.com/en-us/library/ms682064(VS.85).aspx
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/chcp.mspx?mfr=true
-
Dobias schrieb:
Ah ok, die Windows-Konsole. Hab mich schon gewundert. Bei mir funktioniert das hier
#include <fstream> #include <iostream> #include <string> using namespace std; int main() { string in; cin >> in; ofstream s( "was.txt" ); s << in; s.close(); return 0; }
nämlich auch wunderbar wenn ich Umlaute eingebe.
Sorry, ich hab mich wohl undeutlich ausgedrückt! Aber das was du sagst, ist das gleiche, wie bei mir. Ich verwende getline(cin, ???) und s.open("was.txt", ios_base::out). Bei mir funktioniert das ganze nicht!
-
Dobias schrieb:
Die Codepage für die Win-Konsole kannst du entweder über die Registry, die Kommandozeile selbst oder die WinAPI setzen:
http://msdn.microsoft.com/en-us/library/ms682064(VS.85).aspx
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/chcp.mspx?mfr=trueHier ist doch die Antwort, oder ?
Gruss Sheldor
-
Ich hab die Lösung schon!
string umlaut(string str) { string str_end, ram; for(unsigned int i = 0; i < str.length(); i++) { switch(str[i]) { case 'Ž': ram = "Ä"; break; case '™': ram = "Ö"; break; case 'š': ram = "Ü"; break; case 'µ': ram = "Á"; break; case '·': ram = "À"; break; case 'à': ram = "Ó"; break; case 'ã': ram = "Ò"; break; //Hier die anderen Umlaute default: ram = str[i]; break; } str_end += ram; } return str_end; }
Hier wäre die Liste:
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Ž | ™ | š | µ | · | à | ã | é | ë | ¶ | â | ê | „ | ” | | | … | ¢ | • | £ | — | ƒ | “ | – | á | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Ä | Ö | Ü | Á | À | Ó | Ò | Ú | Ù | Â | Ô | Û | ä | ö | ü | á | à | ó | ò | ú | ù | â | ô | û | ß | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
-
Ich stelle gerade fest, dass das ganze dann ja nur für diese speziellen Fälle funktioniert!
-
Deshalb ja auch der Codepage-Kram. (oder ein anderes OS ;))
-
Die erinnerung schrieb:
Wie kann man das machen?
Hab leider keine zeit zum Googlen. kann mir da einer Helfen?
Unter Windows gibt's dafür:
OemToChar
-
Die erinnerung schrieb:
Hab leider keine zeit zum Googlen.
Bin ich der Einzige, der das irgendwie unhöflich findet?
-
Nein!
-
ok. ist doch etwas unhöflich, aber ich habe echt keine Zeit zum googlen. Ich kann nur ca. 5 min am Stück ran, und dann muss ich meistens auch wieder weg!
Kann mir einer sagen, wie ich mit unicode per ofstream in eine Datei schreiben kann?
-
Das hier könnte helfen:
http://www.codeproject.com/KB/files/EZUTF.aspxbtw: Wie kannst du unser solchen Bedingungen vernünftig programmieren?