Lowlevel
Lowlevel => Lowlevel-Coding => Thema gestartet von: KtmnjjpfjsFvzG am 01. February 2013, 18:56
-
Hi :)
Frage: Wie gebe ich nicht-ASCII-Zeichen wie ß,ä,ö,ü usw, aus?
-
Über VGA-Grafik kann man keine Unicodezeichen ausgeben soviel ich weiß; dafür musst du einen VESA GraKa-Treiber proggen.
Unicode:
http://de.wikipedia.org/wiki/Unicode (http://de.wikipedia.org/wiki/Unicode)
-
Die Codes für die Zeichen kannst du hier nachgucken: http://de.wikipedia.org/wiki/Codepage_852 (Zeichen suchen und die Hexadezimalziffern aus der Zeilen- und Spaltenüberschrift kombinieren.) Die Zahlen kannste dann zum Beispiel in die Scancode-Tabellen im Tastaturtreiber reinfummeln.
Ich nehme mal an das du darauf hinauswolltest und rate ansonsten von Umlauten im Quelltext ab. Du müsstest dafür nämlich die C-Datei mit dem passenden Encoding speichern, dann kannst du ganz normal Strings verwenden. Das richtige Encoding ist Codepage 437 (oder ein kompatibles wie z. B. Codepage 852), und unter Visual Studio kannst du das zum Beispiel auswählen mit dem kleinen Pfeil im neben dem Save-Button im Save-Dialog. Da heißt das dann "OEM United States - Codepage 437" bzw. "Central European (DOS) - Codepage 852". Allerdings ist das ein ziemliches Gefrickel beim nächsten Öffnen, weil der sich das ja nicht merkt und du dann umständlich über den Öffnen-Dialog gehen musst und das Encoding beim Laden auswählen musst.
-
Jo, passt, 0xe1 macht das ß... :)
Warum ist es denn Codepage 852 und nicht, keine Ahnung, 850 oder 437 oder was auch immer?
-
Problem: Wenn ich 0xef ausgebe, kommt kein "´", sondern ein "umgedrehtes U" :?, alles andere (ß, ä, ö, ü, Ä, Ö, Ü) geht...
-
Fun fact: Das Wiki hat eine Seite dazu. http://www.lowlevel.eu/wiki/Codepage_437 (http://www.lowlevel.eu/wiki/Codepage_437)
-
Oh aha OK also doch 437... blöd ist nur: "´" scheint es nicht zu geben...