Forum: PC-Programmierung ASCII Zeichensatz


von Pit (Gast)


Lesenswert?

Hallo,

haben die ASCII Zeichen (0 bis 255) unterschiedliche Kodierungen 
abhängig von den Windows-Spracheinstellungen?

Ich denke nicht. Was denkt Ihr?

Gruß Pit

von Andreas B. (bitverdreher)


Lesenswert?


von Fritz G. (fritzg)


Lesenswert?

Nein, es gibt nur eine Kodierung für ASCII.

Allerdings geht ASCII nur bis 127, d.h. es gibt keine Umlaute usw.
Deswegen werden andere Zeichensätze wie ISO-8859 usw. verwendet, Windows 
hat da auch wieder eigene.

Siehe http://de.wikipedia.org/wiki/ISO_8859

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Windows verwendet durchaus unterschiedliche Codepages in Abhängigkeit 
von der Spracheinstellung.

Die meisten "westlichen" Sprachen verwenden CP1251, was weitestgehend 
IS8859-1 entspricht. Wählt man aber Sprachen mit stark abweichenden 
Zeichenbedarf, wie z.B. polnisch oder gar Sprachen mit nichlateinischen 
Schriftsystemen (griechisch, russisch, georgisch etc.), dann wird eine 
andere Codepage genutzt.

Die Codepage ist aber nur relevant für Programme, die intern mit 
8-Bit-Zeichensätzen arbeiten; Windows selbst arbeitet mit 
16-Bit-Unicode, und viele neuere Programme verwenden UTF-8, so daß hier 
keine Codepage nötig ist.

Im von vielen Leuten hartnäckig falsch "DOS-Fenster" genannten 
Kommandozeilenfenster verwendet Windows auf "westlichen" Systemen eine 
komplett andere Codepage, und zwar eine, die den Zeichensatz des alten 
IBM PC nachbildet. Das ist CP437 bzw. leicht variiert CP850. Programme, 
die als Konsolanwendungen laufen, können die verwendete Codepage auch 
umschalten (mit SetConsoleOutputCP), aber das hat nur dann eine 
sinnvolle Auswirkung, wenn im Konsolenfenster eine geeignete Schriftart 
verwendet wird. Die standardmäßig aktiven Pixelfonts kennen nur eine 
Codepage und können daher Sonderzeichen aus anderen Codepages nicht 
darstellen. Als Schrifteinstellung für Konsolenfenster empfiehlt sich 
daher "Consoloas" oder "Lucida Console" - das sind Truetype-Fonts, die 
beliebige Codepages darstellen können.


Der ASCII-Code übrigens ist immer der gleiche - die ersten 127 Zeichen 
aller Codepages und sonstigen Zeichencodierungssysteme sind i.d.R. 
identisch.

von Kaj (Gast)


Lesenswert?

Pit schrieb:
> haben die ASCII Zeichen (0 bis 255)
ASCII geht nur von 0 bis 127. Alles was danach kommt ist der "erweiterte 
ASCII"-Zeichensatz und ist Regions abhaengig. So wirst du hier in D mit 
dem ASCII-Code 200 ein anderes Zeichen arhalten als in der Tuerkei, oder 
in Israel, oder in Spanien oder in Russland.

von Pit (Gast)


Lesenswert?

Ich habe jetzt auch noch mal nachgelesen, und ihr habt mal wieder recht!

1. ASCII von 0 bis 127 ist immer gleich.
2. Wenn man UTF8 nimmt ist man auf der sicheren Seite - wobei UTF8 im 
Bereich 0 bis 127 dem ASCII entspricht.
3. Google hilft weiter
4. Goto 1

Danke und Gruß
Pit

von Jens G. (jensig)


Lesenswert?

>die als Konsolanwendungen laufen, können die verwendete Codepage auch
>umschalten (mit SetConsoleOutputCP), aber das hat nur dann eine

Oder mit "chcp <codepage>" in der Session die CP umschalten.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Jens G. schrieb:
> Oder mit "chcp <codepage>" in der Session die CP umschalten.

Kann man auch machen, oder
1
mode con cp select=<codepage>

Eleganter ist es aber, das in der Anwendung selbst zu machen, die 
nämlich weiß, was sie ausgeben will.

An der Einschränkung durch die verwendete Schriftart ändert das aber 
nichts. "Rasterschriftart" ist nur für Codepage 850 bzw. mit kleinen 
Einschränkungen 437 verwendbar.

von Georg (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> "Rasterschriftart" ist nur für Codepage 850 bzw. mit kleinen
> Einschränkungen 437 verwendbar.

Und die armen Schweine im Rest der Welt haben keine Rasterschriften? Ich 
habe für meine Steuerungen eine kyrillische Rasterschrift zur Verfügung 
gestellt, weil Russen das lieber lesen. Die Welt ist grösser und 
vielfältiger als so mancher sich das vorstellen kann.

Georg

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Georg schrieb:
> Und die armen Schweine im Rest der Welt haben keine Rasterschriften?

Haben sie, aber die sind halt nur auf den entsprechend lokalisierten 
Windows-Versionen verfügbar.

von Pandur S. (jetztnicht)


Lesenswert?

Die ganze Computer Technologie, resp die ersten Implementation fanden 
eben im Sprachraum mit lateinischen Buchstaben statt. Wir koennen froh 
sein, denn sie haetten koennen, resp in der Zukunft werden sein koennen 
auch auch in Japanischer oder Chinesischer Schrift sein. Und da kommt 
eben mehr als nur die Zeichen mit. Auch die Denkweise. Anstelle von 
"Enter" und "Cancel" koennten die Buttons auch "Mach mal weiter" und 
"Jetzt grad nicht" heissen, und auch dss bedeuten.

Das laeuft dann unter Alphabet-Imperialismus ... :-)

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.