Ich habe ein kleines Sprachlernprogramm erstellt ... naja fast. Im Spanischen wie im Deutschen (für diese Sprachen ist es gedacht) gibt es einige Sonderzeichen die auch benötigt werden um die Sprache richtig zu lernen, die die Konsole aber nicht ausgeben möchte. Dazu hab ich schon das hier gefunden: Beitrag "Sonderzeichen in C++" Der Befehl SetConsoleCP(1252/*oder CP_WINANSI*/) und SetConsoleOutputCP([...]). Nun ... diese wollen bei mir nicht funktionieren obwohl ich Consolas in der Konsole verwende. Was ist da los? MfG, multipilz5 :)
Hi ich nutze dafür AnsiToOEM() um den String vorher in den Zeichensatz/CodePage der Console umzuwandeln. Danach den String ausgeben und auch die deutschen Umlaute und ß stimmen. Grüße, Muetze1
mutlipilz5 schrieb: > Nun ... diese wollen bei mir nicht funktionieren Was bedeutet das genau? Was wird anstatt der erwarteten Zeichen ausgegeben? Wie gibst Du die Zeichen aus, wie sind sie in Deinem Programm(quelltext) codiert?
mutlipilz5 schrieb: > 1252/*oder CP_WINANSI Vergiss diesen Codepage-Müll und lern es gleich richtig mit UTF-8. Dann hast du nie mehr Probleme mit Sonderzeichen.
T.roll schrieb: > Vergiss diesen Codepage-Müll und lern es gleich richtig mit UTF-8. Seit wann funktionieren unter Windows Konsolausgaben in UTF-8?
Rufus Τ. F. schrieb: > Seit wann funktionieren unter Windows Konsolausgaben in UTF-8? Ich weiß ja, dass Windows immer schon ziemlich hintendran ist; aber ernsthaft??? Wir haben 2016 und dieser Müll kann immer noch kein Unicode? Bei Google findet man zumindest ein paar Lösungen für UTF-8. Waren die nicht inzwischen mal bei UTF-16 angekommen? Naja gut, bei Excel sind sie auch immer noch zu blöd für vernünftige Zeichensätze.
Das ist sicherlich echt total hilfreich. Windows unterstützt Unicode bereits seit 1993. Und seit einiger Zeit auch Utf-8 in der Konsole (was mir, weil ich das Problem schlichtweg nicht habe, bislang unbekannt war). https://msdn.microsoft.com/en-us/library/tw4k6df8%28v=vs.100%29.aspx Was hat Excel Deiner Ansicht nach für ein Zeichensatzproblem?
Einfach GUI-Anwendung bauen statt Kommandozeile ;D WinAPI, .NET-Framework, WinRT/UWP und z.B. auch QT und wxWidgets arbeiten alle intern mit UTF16. Im .NET-Framework ist bei Funktionen wie File.WriteAllText UTF8 das Standardausgabeformat. Ärger mit Mehrsprachigkeit hat man eigentlich nur auf der Konsole, wo ich den Eindruck hab das MS die mehr als Legacy mit sich rumschleppt als da noch wirklich was rein zu investieren.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.