Ascii

Hallo,

man kann soch ASCII Zeichen auch dadurch auf den Bildschirm bringen, dass man ALT+xxx eingibt.

Wo kann ich mir eine Liste aller ASCII Zeichen mit zugehöriger Codenummer holen? Oder gibt es einen Batch, mir selbst eine zu erzeugen?

Grüße
Carsten

Hallo,

man kann soch ASCII Zeichen auch dadurch auf den Bildschirm
bringen, dass man ALT+xxx eingibt.

Wo kann ich mir eine Liste aller ASCII Zeichen mit zugehöriger
Codenummer holen?

http://de.wikipedia.org/wiki/ASCII#Zusammensetzung

Allerdings besteht ASCII nur aus 127 Zeichen, und für dich sind noch mehr Zeichen interessant. Die gehören dann aber zu einem anderen Charset.

Grüße,
Moritz

OT Zeichen 0 und 127 bei ASCII

http://de.wikipedia.org/wiki/ASCII#Zusammensetzung

Allerdings besteht ASCII nur aus 127 Zeichen, und für dich
sind noch mehr Zeichen interessant. Die gehören dann aber zu
einem anderen Charset.

Hallo Moritz,
was ich an:
******************ZitatAnfang*******************
Aus diesem Grund gehörten zum eigentlichen ASCII-Code nur 126 Zeichen, denn den Bitmustern 0 (0000000) und 127 (1111111) entsprachen keine Zeichencodes. Der Codierung 0 wurde später auch die Bedeutung „Ende der Zeichenkette“ beigelegt, und dem Zeichen 127 wurden verschiedene grafische Symbole zugeordnet.
******************ZitatEnde*********************
nicht verstehe ist „wurden verschiedene grafische Symbole zugeordnet“
Deute ich das richtig, daß die Verschiedenheit der grafischen Symbole an der gewählten Schriftart liegt?

Das mit den „nur“ 126 Zeichen ist mir übrigens völlig neu.
Da ich ASCII und ANSI sowieso seit immer verwechsel, dachte ich, das Eine gilt von 0 bis 127, das Andere von 0 bis 255, oder von mir aus, ist das Andere das Eine plus 128-255.

Kein Chr(0) und kein Chr(127) überrascht mich echt, noch nie was darüber gelesen, bzw. genauer, alle sprachen von ASCII= 0 bis 127.

Wenn du mehr darüber weißt, plauder mal los, ich lausche gern, interessiert mich.

Danke ^ Gruß
Reinhard

Hallo,

http://de.wikipedia.org/wiki/ASCII#Zusammensetzung

Allerdings besteht ASCII nur aus 127 Zeichen, und für dich
sind noch mehr Zeichen interessant. Die gehören dann aber zu
einem anderen Charset.

Hallo Moritz,
was ich an:
******************ZitatAnfang*******************
Aus diesem Grund gehörten zum eigentlichen ASCII-Code nur 126
Zeichen, denn den Bitmustern 0 (0000000) und 127 (1111111)
entsprachen keine Zeichencodes. Der Codierung 0 wurde später
auch die Bedeutung „Ende der Zeichenkette“ beigelegt, und dem
Zeichen 127 wurden verschiedene grafische Symbole zugeordnet.
******************ZitatEnde*********************
nicht verstehe ist „wurden verschiedene grafische Symbole
zugeordnet“
Deute ich das richtig, daß die Verschiedenheit der grafischen
Symbole an der gewählten Schriftart liegt?

Nein. Die Schriftart sollte mit der Kodierung nichts zu tun haben.

Kodierung ist: „Zum Bitmuster 0101… (Dezimal 65) Gehört der Lateinische Großbuchstabe A“.

Und Schriftart ist: „Ein Lateinischer Großbuchstabe A wird auf dem Bildschirm/Drucker wie folgt dargestellt: …“.

D.h. die Unterscheidung im Zeichen 127 ist eine Frage des Zeichensatzes, nicht der Schriftart.

Das mit den „nur“ 126 Zeichen ist mir übrigens völlig neu.
Da ich ASCII und ANSI sowieso seit immer verwechsel, dachte
ich, das Eine gilt von 0 bis 127, das Andere von 0 bis 255,
oder von mir aus, ist das Andere das Eine plus 128-255.

Also ASCII geht auf keinen Fall über 127 hinaus.

„ANSI“ steht für „American National Standards Institute“. Das hat auch ein paar Zeichensätze standartisiert, aber ohne genauere Angabe sagt „ANSI“ erst mal gar nichts.

Das, was man aus Mitteleuropa kennt, was von 0 bis 255 geht, ist Latin-1, auch als Standard ISO-8859-1 bekannt.

Kein Chr(0) und kein Chr(127) überrascht mich echt, noch nie
was darüber gelesen, bzw. genauer, alle sprachen von ASCII= 0
bis 127.

Das war mir jetzt auch neu :wink:

Wenn du mehr darüber weißt, plauder mal los, ich lausche gern,
interessiert mich.

Ich musste mich wiederholt mit dem Thema herumschlagen, und habe daher mal was auf meinem Blog geschrieben: http://moritz.faui2k3.org/blog/charsets-und-kodierun…

Da geht es zwar um Perl, aber der Anfang ist auch für nicht-Perl-Programmierer interessant.

Wenn du weitere Fragen dazu hast - nur her damit.

Ausserdem ist in der nächsten Ausgabe des $foo-Magazins ein Artikel von mir zu diesem Thema drin.
http://foo-magazin.de/

Grüße,
Moritz

ich hoffe ich uebe mich jetzt nicht in korinthenkackerei:

Nein. Die Schriftart sollte mit der Kodierung nichts zu tun
haben.

Kodierung ist: „Zum Bitmuster 0101… (Dezimal 65) Gehört der
Lateinische Großbuchstabe A“.

nein, kodierung ist: liebe font-grafiker bitte schreibt an LfdNr 65 ein grosses A
aber evtl. meinen wir das selbe naemlich die festlegung codepage=zeichnsatz -> code -> „festlegung soll aussehen wie“

Und Schriftart ist: „Ein Lateinischer Großbuchstabe A wird auf
dem Bildschirm/Drucker wie folgt dargestellt: …“.

nein: Schriftart=font ist: das Zeichen mit der LfdNr 65 sieht aus wie ein grosses A

nach deiner erklaerung ware „Lateinischer Großbuchstabe A“ ein schluessel auf ein zeichen. ist es aber nicht, deshalb kann ich im ultraedit auf kyrillisch oder osteuropäisch schalten und bekomme dann kyrillischen od. osteuropäischen zeichensalat angezeigt, wo bei unreferenziertem schluessel ein fragezeichen sein muesste.

die 65 ist der index und der wird in der codepage=zeichensatz semantisch auf „grosses A“ und grafisch in der schriftart auf ein bild, das wie ein grosses a aussieht referenziert. der semantische teil ist fuer den rechner unerheblich.

Hallo,

nein: Schriftart=font ist: das Zeichen mit der LfdNr 65 sieht
aus wie ein grosses A

Ganz sicher nicht.
Das hiesse nämlich, dass verschiedene Schriftarten das Zeichen Nr. 65 als unterschiedliche logische Zeichen darstellen könnten - eine als ein A, andere als ein B, andere eventuell noch ganz anders.
Das ist aber nicht Aufgabe einer Schriftart.
Eine Schriftart bildet logische Zeichen auf grafische Zeichen ab.

Oder wie es in der Wiki formuliert ist:
http://de.wikipedia.org/wiki/Schriftart
„Als Schriftart bezeichnet man in der Typografie die grafische Gestaltung eines Zeichensatzes.“

nach deiner erklaerung ware „Lateinischer Großbuchstabe A“ ein
schluessel auf ein zeichen. ist es aber nicht, deshalb kann
ich im ultraedit auf kyrillisch oder osteuropäisch schalten
und bekomme dann kyrillischen od. osteuropäischen zeichensalat
angezeigt, wo bei unreferenziertem schluessel ein fragezeichen
sein muesste.

Also erstens stellst du die die Zeichenkodierung (aka charset) um, und nicht die Schriftart, und zweitens ist das kein Argument, weil alle iso-8859-* Zeichensätze alle Zeichen von 0 bis 255 definieren.

die 65 ist der index und der wird in der codepage=zeichensatz
semantisch auf „grosses A“ und grafisch in der schriftart auf
ein bild, das wie ein grosses a aussieht referenziert.

Soweit richtig.

der
semantische teil ist fuer den rechner unerheblich.

Da muss ich widersprechen. Die Zuordnung zu einer Semantik ist das einzige, was eine Rekodierung in einen andere Zeichenkodierung erlaubt - daher ist sie für den Rechner sogar ziemlich wichtig. Außerdem ist es für den Rechner bei Unicode-Codepoints wichtig zu wissen, ob ein Zeichen ein Marking Character ist oder nicht, sonst könnte das Zeichen nicht richtig dargestellt werden, die Länge nicht richtig bestimmt werden etc.

Grüße,
Moritz

nein: Schriftart=font ist: das Zeichen mit der LfdNr 65 sieht
aus wie ein grosses A

Ganz sicher nicht.
Das hiesse nämlich, dass verschiedene Schriftarten das Zeichen
Nr. 65 als unterschiedliche logische Zeichen darstellen
könnten - eine als ein A, andere als ein B, andere eventuell
noch ganz anders.

jupp, deshalb gibt es wingdings & co. und z.b. einen font, der das siemens-logo als zeichen enthaelt.

nach deiner erklaerung ware „Lateinischer Großbuchstabe A“ ein
schluessel auf ein zeichen. ist es aber nicht, deshalb kann
ich im ultraedit auf kyrillisch oder osteuropäisch schalten
und bekomme dann kyrillischen od. osteuropäischen zeichensalat
angezeigt, wo bei unreferenziertem schluessel ein fragezeichen
sein muesste.

Also erstens stellst du die die Zeichenkodierung (aka charset)
um, und nicht die Schriftart, und zweitens ist das kein

jupp, habe ich durcheinander gebracht.

Argument, weil alle iso-8859-* Zeichensätze alle Zeichen von 0
bis 255 definieren.

den satz vestehe ich nicht.
jedes mitglied der iso-8859-* stellt von dezimal 128-255 unterschiedl. logische zeichen mit dem selben code dar: http://de.selfhtml.org/inter/zeichenkodierungen.htm#…

Danke euch beiden
die Antworten bestätigen mich daß es nicht so einfach ist mit den Zeichensätzen.

ANSI oder ASCII mal weglassend, ich kann mir z.B. in Excel durch Vba alle Zeichen im Unicode darstellen lassen, also von 0 bis 65535.
Ist für die Spalte wo sie erscheinen sollen die Schrifart „Arial“ gewählt, sieht halt die Spalte dementschprechend aus, ist die Unicode Schriftart von MS gewählt, sieht sie anders aus.
Das in Excel.
Wenn ich nun daraus etwas rauskopiere und in unterschiedliche Chatfenster reinkopiere, so sieht das Ergebnis wiederum völlig anders aus, wechselt zwischen Nichtanzeige, anderem Symbol, usw.
Dankeschön für eure Beiträge
Gruß
Reinhard

Hallo Reinhard,

Das mit den „nur“ 126 Zeichen ist mir übrigens völlig neu.

Das kommt aus alten Zeiten (1950/60ern), wo die Eingabegeräte noch Terminals genannt wurden und ihre Daten seriell an einen irgendwo stationierten Großrechner schickten. Dafür wurde ein Bit als „Paritätsbit“ geopfert um sicherzustellen, daß die Übertragung auch geklappt hat. Deshalb reduzierte sich die Menge der mit einem Byte verfügbaren Zeichen um die Hälfte.

Da ich ASCII und ANSI sowieso seit immer verwechsel, dachte
ich, das Eine gilt von 0 bis 127, das Andere von 0 bis 255,
oder von mir aus, ist das Andere das Eine plus 128-255.

Das heutige bekannte ASCII stammt von IBM und kam mit dem PC auf. Bis dahin gab es z.B. keine Umlaute (etwa unter CP/M). IBM verzichtete auf das Paritätsbit und verdoppelte so den (bis dahin fest definierten) Code, der forthin als „erweiterter ASCII-Code“ genannt wurde.

Allerdings ging IBM mit der Erweiterung ziemlich schluderig vor. So liegen etwa die Buchstaben ä, ö und ü keineswegs in der richtigen Reihenfolge. Außerdem umfasst der erweiterte Code etliche sog. „Graphikzeichen“, mit denen man z.B. rechteckige Fenster sowie horizontale und vertikale Linien darstellen kann. IBM legte damals wenig Wert auf richtige Graphik und dachte, diese Linien würden für Businessapplikationen ausreichen. Graphik wurde als Spielerei abgetan.

Der ANSI-Code kam erst viel später. ANSI ist für Amerika so etwas wie für uns DIN, also ein Institut für Nomierung.

Kein Chr(0) und kein Chr(127) überrascht mich echt, noch nie

Über Chr(127) kann ich dir nichts sagen. Chr(0) als Endekennung eines Strings (Text) kam spätestens mit Erscheinung der Programmiersprache C (Ende der 60er)auf und ist heute bei vielen Sprachen der Standard. Dieser Stringtyp wird übleicherweise CString oder ZString (Z für Zero) genannt und auch von den meisten Windows-API Funktionen verwendet.

Außerdem gibt es noch einen Stringtyp, der z.B. bei Btrieve, einer Datenbank die Novell Netware beiliegt verwendet wird. Da wird im 1. Byte des Strings dessen Länge abgespeichert, wodurch sich aber die max. Länge auf 255 Zeichen reduziert. Dieser Typ taucht manchmal unter der Bezeichnung NString auf.

alle sprachen von ASCII= 0 bis 127.

s.o.

Grüsse,

Tim