Forum: PC-Programmierung ASCII Zeichen


von S!mply R. (bulb)


Lesenswert?

Hallo

Ich hab mir mal eine ASCII Tabelle ausgedruckt 
(http://www.physik.fu-berlin.de/~goerz/misc/ascii.gif) und wollte die 
bei meinem MFC Programm verwenden, allerdings habe ich festgestellt, 
dass die ASCII Tabelle nicht mit dem ASCII-Code des Visual 6 
übereinstimmt (Wenn ich ALT gedückt halte und den Dezimalwert für ein 
ASCII- Zeichen eingebe).
Verwendet Microsoft in VC 6++ einen anderen Standart?

Danke!

von Werner A. (homebrew)


Lesenswert?

Hängt das nicht eher von der verwendeten Schriftart ab?

von Thomas B. (Firma: Druckerei Beste) (virtupic)


Lesenswert?

Die Codes von 32 bis 127 (0x20 bis 0x7F) sind ziemlich allgemeingültig. 
Ich glaube nicht, dass MS da was anderes macht. Die ersten 32 Codes sind 
Steuerzeichen, bei denen jeder macht was er will. Die Spielkarten in der 
Tabelle kann man nicht ernst nehmen.

Wenn mehr als 7 Bits benutzt werden (also alles ab 128 - 0x80) sind 
nicht im ASCII standardisiert. Da gibt's dann eine Reihe von ISO-8859, 
Unicode und anderen Standards.

Kurz gesagt: 0-9, A-Z, a-z und noch ein paar mehr sollten auf so 
ziemlich allen Rechner in allen Programmen gleich codiert sein. 
Unabhängig von der Schrift. Für öäüß... gibt's Unterschiede, je nach 
Rechner, Software und Schrift.

Das "fast" bezieht sich daraf, dass es vielleicht noch den einen oder 
anderen Mainframe mit EBCDIC-Codierung oder gar anderes gibt.

virtuPIC

von Kai G. (runtimeterror)


Lesenswert?

>Verwendet Microsoft in VC 6++ einen anderen Standart?

Der Standard -Zeichensatz unter Windows ist cp1252 - ansonsten UTF16 
soweit ich weiß.
Viele Details dazu auch unter http://www.fileformat.info

von S!mply R. (bulb)


Lesenswert?

danke für eure raschen antworten.

von Spess53 (Gast)


Lesenswert?

Hi

Der verwendete Zeichensatz ist auch noch von der Ländereinstellung 
abhängig.

Übrigens gibt es unter Windows das Programm 'Charmap.exe', mit dem man 
sich die einzelnen Fonts ansehen kann.

MfG Spess

von Rolf Magnus (Gast)


Lesenswert?

Auf diesem Bild ist ein "Extended ASCII Chart" zu sehen. Es gibt aber 
kein "Extended ASCII". Nur die ersten 128 Zeichen gehören zu ASCII.

> Die ersten 32 Codes sind Steuerzeichen, bei denen jeder macht was er
> will.

Die sind aber durchaus auch in ASCII definiert, nur eben nicht als 
normale darstellbare Zeichen, sondern mit einer Sonderfunktion. Die 
Bezeichnung in Klammern ist der ASCII-Name. Das Zeichen 127 ist 
eigentlich auch ein Steuerzeichen. Dieses Häuschen hat also auch nichts 
mit ASCII zu tun.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ums noch weiter auszuwalzen:

Die abgebildete Zeichentabelle gibt den von IBM definierten Zeichensatz 
der Codepage 850 wieder. Dieser Zeichensatz wird unter DOS verwendet und 
ist unter Windows die Standardvorgabe in Konsolenfenstern.

Die von Windows in Windows-Applikationen verwendete Codepage 1252 wird 
auch als ANSI oder Latin-1* bezeichnet; es gibt praktisch überhaupt 
keinen Grund mehr, unter Windows mit CP850 zu arbeiten. Auch in 
Konsolfenstern nicht, mit geeigneten Win32-API-Funktionen wie 
SetConsoleOutputCP und SetConsoleCP lässt sich die verwendete Codepage 
sinnvoll anpassen.

Allerdings sollte dann auf die Verwendung der installierten 
Pixelbreischrift im Konsolenfenster verzichtet werden und die für 
Konsolennutzung installierte Schriftart "Lucida Console" verwendet 
werden, diese enthält alle benötigten Glyphen der unterschiedlichen 
Codepages und kann im Gegensatz zu den Pixelbreischriften anständig 
skaliert werden.
Mit einigen Tricks lässt sich auch die mit "Vista" gelieferte Schriftart 
"Consolas" nutzen, die eine deutlich lesbarere und eindeutigere 
Unterscheidung der Glyphen 1Il und 0O zulässt.
Aber das ist 'ne andere Geschichte.



*) CP1252 ist nicht exakt dasselbe wie ANSI, Latin-1 oder ISO8859-1, 
aber ausreichend ähnlich.

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
Noch kein Account? Hier anmelden.