Unicode und Codepages
Hallo Sebastian,
Zur Darstellung von „fremden“ Zeichen gibt es 2 gängige Möglichkeiten:
a) ASCII - Erweiterung (Codepage)
b) Unicode
a) ASCII bezeichnet nur die Zeichen 0 … 127. Alles darüber bis 255 ist abhängig von der vewendeten Codepage (z.B. 1251 für Kyrillisch in Windows glaube ich). In Dos ist wieder eine andere Codepage-Nummer
Zudem must Du einen Font benutzen, der dieser Codepage entspricht, sonst wird ein alpha als ü oder sonstwas dargestellt.
Eine Codepage die Alpha und ü und ß gleichzeitig enthält gibt es wohl
nicht.
b) Unicode
aus all diesen Problemen, und weil chinesisch (CJK) garnicht in dien 128 Zeichen reinpasst, kristallisiert sichirgendwann Unicode heraus.
-> jedes Zeichen hat 16 bit -> 65.000 Zeichen Möglich.
-> später auch noch 32 bit, aber praktisch sind nur die ersten 65.535 relevant, werden auch als BMP = Basis Multilinguale Page bezeichnet.
-> Ein Einblick z.B. mit Arial Unicode (evt. Erweiterungen bei XP aktivieren)
-> Ein Editor z.B. der Editor von XP
-> Benutzung in Compilern die damit Klarkommen: sie verwenden wide_char anstelle von char, und gut ist.
-> Benutzung in Compilern die nicht damit Klarkommen: z.B. UTF-8 Kodierung verwenden, und Texte in Notpad unter UTF-8 abspeichern, und dann die entsprechend kodierten Segmente mit Copy-Paste in dein Programm einfügen.
Wir haben so unsere Geräte alle „Weltsprachlich“ gemacht, zuletzt gerade heute ging ein Display raus, dass ich vor 6 Jahren entwickelt habe, und wo zufällig noch ein fast ein MB Speicher frei war, um z.B. den Chinesischen Bereich der BMP als 16x16Font rein zu setzen.
Die notwendigen Änderunge beschränken sich je nach güte der Software auf ein paar dutzend Zeilen.
Gruß
achim
ist es möglich in ein und demselben Label Griechische als auch
deutsche Zeichen dar zustellen? Nach der Zeichentabelle von
Windows hat die Schriftart Arial ja z.B. da Alpha. Jedoch
beim Einfügen dieses Zeichens in den Quellcode ergibt sich
lediglich ein Fragezeichen. Ich habe es auch schon mit charset
= GREEK_CHARSET probiert, jedoch leider ohne Erfolg.
Kann mir jemand helfen???
Danke im Voraus,
Sebastian