zeichensätze

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
gucky
Beiträge: 14
Registriert: Do Dez 09, 2010 8:02 pm

zeichensätze

Beitrag von gucky » Mo Dez 20, 2010 7:45 pm

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

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: zeichensätze

Beitrag von Xin » Mo Dez 20, 2010 8:00 pm

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.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

gucky
Beiträge: 14
Registriert: Do Dez 09, 2010 8:02 pm

Re: zeichensätze

Beitrag von gucky » Mo Dez 20, 2010 8:03 pm

gibt es die zweite hälfte nicht auf allen systemen??

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: zeichensätze

Beitrag von Xin » Mo Dez 20, 2010 10:51 pm

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.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: zeichensätze

Beitrag von cloidnerux » Mo Dez 20, 2010 10:56 pm

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].
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: zeichensätze

Beitrag von Kerli » Di Dez 21, 2010 12:14 am

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 :P 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.
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

gucky
Beiträge: 14
Registriert: Do Dez 09, 2010 8:02 pm

Re: zeichensätze

Beitrag von gucky » Di Dez 21, 2010 4:25 pm

dass heißt, wenn ich will das meine zeichen auf jeden system erkannt werden muss ich den ascii zeichensatz nehmen??

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: zeichensätze

Beitrag von Xin » Di Dez 21, 2010 5:49 pm

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.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten