Umlaute und Sonderzeichen in der Konsole - ANSI-Tabelle



  • Hallo,

    ich wollte in der Konsole die Umlaute darstellen. Laut Buch kein Problem, ANSI-Tabelle nehmen, Hex-Code raussuchen und mit \x** ausgeben.

    Mmmkay, falsches Ergebnis in der Konsole. Also hier in die FAQ geschaut, diese Codes funktionierten für die umlaute, unterschieden sich allerdings von denen in den anderen Tabellen (z.B. hier und hier).

    Also schnell Programm getippt, dass alle Zeichen von 0 bis 255 ausgibt.
    Offenbar unterscheiden sich die Tabellen, die man so im Netz findet, ab dem Zeichen 128 (dez) von dem, was die Konsole ausgibt.

    z.B. Ä laut Tabellen: 196 (dez) bzw. C4 (hex)
    tatsächlich in der Konsole aber: 142 (dez) bzw. 8E (hex)

    Woher kommt der Unterschied?
    Und wo bekomme ich eine Tabelle mit den "richtigen" Codes her, die ich dann zum Rumspielen in der Konsole benutzen kann?

    Danke schonmal 🙂



  • das ist deshalb weil der ascii-code ein 7 bit code ist und deshalb nur 128 zeichen
    darstellen kann. daher gibt es andere erweiterte codes zB. den Unicode oder den
    Codepage 437, in denen weitere zeichen enthalten sind. in der konsole wird bei
    windows der codepage 437 verwendet.
    http://de.wikipedia.org/wiki/Codepage_437



  • Vielen Dank für deine Antwort und den Link 🙂

    Das heißt, sobald ich ein Zeichen benutze, das nicht mehr im ASCII-Code ist, wird es in anderen Systemen als Windows eventuell anders dargestellt?



  • ja das kann sein, hab es aber noch nie ausprobiert.



  • Alles klar, danke dir.


Anmelden zum Antworten