Seite 1 von 1
zeichensätze
Verfasst: Mo Dez 20, 2010 7:45 pm
von gucky
Hallo,
ich hab grad geschaut, ober ascii 256 zeichen darstellen kann. dies ist leider nicht der fall und da wollt ich fragen, ob es eine möglichkeit gibt, 256 verschiedene zeichen darzustellen.
gruß gucky
Re: zeichensätze
Verfasst: Mo Dez 20, 2010 8:00 pm
von Xin
gucky hat geschrieben:ich hab grad geschaut, ober ascii 256 zeichen darstellen kann. dies ist leider nicht der fall und da wollt ich fragen, ob es eine möglichkeit gibt, 256 verschiedene zeichen darzustellen.
ASCII hat nur 128 Zeichen.
Da ein Byte heute 8 Bit breit ist, hast Du die Möglichkeit 256 Zeichen darzustellen, in der Regel entsprechen die ersten 127 dem ASCII-Standard.
Die zweite Hälfte hängt von der
Codepage ab.
Re: zeichensätze
Verfasst: Mo Dez 20, 2010 8:03 pm
von gucky
gibt es die zweite hälfte nicht auf allen systemen??
Re: zeichensätze
Verfasst: Mo Dez 20, 2010 10:51 pm
von Xin
gucky hat geschrieben:gibt es die zweite hälfte nicht auf allen systemen??
Die Zeichen 128-255 sind in ihrer Bedeutung mehrdeutig. Sonderzeichen, wie das 'Ä' liegt bei der einen Codepage woanders als bei der anderen.
Buchstaben sind ja nichts anderes als Zahlen - der Zahl 65 ist das große 'A' zugewiesen, wenn der Computer also 65 liest, druckt er ein 'A'. Für den Computer ist die Bedeutung der 65 vollkommen egal.
Je nach Codepage wird für das Zeichen 160 das eine oder andere Zeichen gedruckt.
Wenn man sich mit der Codepage vertut, dann sieht das merkwürdig aus, man sieht das ja häufig beim Kopieren von Dateien oder von Websites, wo Umlaute falsch geschrieben werden.
Das ein Umlaut nicht richtig gedruckt wird, heißt ja nicht, dass das System keine Umlaute kennt. Die Zahl für den Umlaut wird nur falsch interpretiert.
Re: zeichensätze
Verfasst: Mo Dez 20, 2010 10:56 pm
von cloidnerux
http://www.torsten-horn.de/techdocs/ascii.htm
Dort kannst du sehen, dass je nach Definition (z.B Cp850/CP1252) andre Zeichen nach dem Wert 0x80 liegen.
Das hat die Ursache darin, dass ASCII ein Amerikanisches Format ist und deswegen keine Umlaute kennt.
Weil man aber nicht anderen die Möglichkeit der Nutzung dieser Verwehren wollte, hat man platz für eigene Definitionen gelassen, eben alle Zahlen über 0x80.
Weil man heutzutage kaum noch Konsolenanwendungen hat, und wenn, dann sind sie etwas spartanisch, kann man auch mal ö durch oe ersetzten oder ß durch [ss].
Re: zeichensätze
Verfasst: Di Dez 21, 2010 12:14 am
von Kerli
cloidnerux hat geschrieben:Weil man heutzutage kaum noch Konsolenanwendungen hat, und wenn, dann sind sie etwas spartanisch,
Kaum noch Konsolenanwendungen ist gut: <Tab> => "Display all 3555 possibilities? (y or n)" Irgendwie doch etwas mehr als kaum

Sehr vieles geht über die Konsole viel schneller und ist viel flexibler (Pipes, IO-Redirection, Scripte...)
Im Normalfall sollte man aber eh versuchen alle Ausgaben auf Englisch auszugeben, wo man eigentlich eh keine Zeichen >127 braucht. Für andere Sprachen kann man dann zb gettext verwenden, wo der Benutzer dann glaube ich selbst die Kodierung festlegen kann, bzw. automatisch vom System die Richtige bestimmt wird.
Re: zeichensätze
Verfasst: Di Dez 21, 2010 4:25 pm
von gucky
dass heißt, wenn ich will das meine zeichen auf jeden system erkannt werden muss ich den ascii zeichensatz nehmen??
Re: zeichensätze
Verfasst: Di Dez 21, 2010 5:49 pm
von Xin
gucky hat geschrieben:dass heißt, wenn ich will das meine zeichen auf jeden system erkannt werden muss ich den ascii zeichensatz nehmen??
Wenn diese Systeme ASCII unterstützen, dann klappt das.
Die Chance ist groß, aber eine Garantie gibt's nicht, nicht umsonst gibt's in C die Trigraphen. Ich sehe gerade, dass die noch gar nicht im Wiki stehen...
Folgendes ist gültiges C:
Code: Alles auswählen
??=include <stdio.h>
int main( void )
??<
char hello??(??)="Hello World??/n";
printf( hello );
return 0;
??>
Der gcc kompiliert es mit "-trigraphs", früher ging's auch ohne den Schalter:
Code: Alles auswählen
xin:~$ gcc tri.c -trigraphs -o tri
xin:~$ ./tri
Hello World
Auf einer VAX "durfte" ich in diesem Stil bereits programmieren.