|
|
Mouse über Zeichen bewegen
|
Der Zeichenpicker dient zum Nachschlagen und Kopieren von Zeichen klassischer 8-Bit-Codepages (bspw. CP437). Er zeigt für jeden darstellbaren ASCII-Wert (Bereich 32..126) sowie für jeden erweiterten Codepage-Wert (Bereich 128..255) das zugehörige Unicode-Zeichen und dessen UTF-8-Kodierung an. Der Picker ist besonders praktisch für C- / C++ Konsolenprogramme, die intern mit einer erweiterten ASCII-Codepage arbeiten. Er hilft beispielsweise bei der Portierung von älteren MS-DOS Textmodeprogrammen die Rahmenzeichensymbolen oder andere Sonderzeichen beinhalten können, auf moderne Linux-Konsolen. In solchen Fällen müssen die ursprünglichen Zeichenwerte der Codepage bei der Ausgabe in die entsprechenden UTF-8-Bytefolgen übersetzt werden. Hierfür gibt es am Ende dieser Seite einen Download für ein Demoprogramm sowie die benötigten Lookup-Tables zur Darstellung von Codepageglyphen in C-Programmen. Hinweis: In der Codepage-Auswahl erscheint eine Codepage namens "- own -". Diese ist eine modifizierte CP437, damit in einem Zeichenbereich Glyphen existieren, die in der originalen CP437 nicht vorhanden sind, aber für manche Ausgaben benötigt werden (hier "Δ" und "ϑ") |
|
Benutzung der Tabelle Die Benutzung der Codepagetabellen oben ist denkbar einfach. Oberhalb der Tabelle kann die gewünschte Codepage ausgewählt werden, die angezeigt werden soll. Wird mit der Mouse auf ein Zeichen gezeigt, wird für dieses Zeichen unterhalb der Tabelle die Angaben für das Zeichen selbst, den Codepage-Wert (entspricht der Position in einem 8-Bit Ascii Zeichensatz, der Unicode sowie der UTF-8 Wert angezeigt). Ein Klick auf das Zeichen kopiert dieses Zeichen ohne weitere Abfrage in das Clipboard des Systems, so das mittels der Einfügefunktion (STRG-V) dieses Zeichen in (fast) jeden Editor oder jede Textverarbeitung eingefügt werden kann. Verwendung von Codepagezeichen in C - Konsolenprogrammen Möchte man C-Programme für eine Linuxkonsole erstellen, oder bestehende (alte) Programme für eine Linuxkonsole portieren, so ist es nicht so ohne weiteres möglich, Zeichen aus einem erweiterten ASCII-Bereich 128 .. 255 zu verwenden. Zeichen mit einem Wert oberhalb von 127 werden durch die bereits oben genannte Codepage repräsentiert wodurch das Erscheinungsbild (Glyph) eines Zeichens davon abhängig ist, welche Codepage geladen ist. Die Zeichen einer Codepage sind hierdurch durch ein einzelnes Byte abbildbar (bei UTF-8 kann es bis zu 4 Bytes für ein einzelnes Zeichen benötigen). Eine sehr kleine C-Source ermöglicht es, Zeichenwerte einer Codepage in einem Linuxterminal mittels eines einzelnen Bytes auszugeben. Dabei werden die ursprünglichen Zeichenwerte nicht direkt an das Terminal gesendet, sondern über eine Übersetzungstabelle in die entsprechenden UTF-8-Zeichen umgesetzt. Der Aufruf im Programm bleibt dabei sehr einfach: Ein Wert aus dem ursprünglichen 8-Bit-Zeichensatz wird über eine eigene Ausgabefunktion ausgegeben, die intern die passende UTF-8-Bytefolge erzeugt. Damit ist es möglich, Textausgaben aus älteren Programmen, die beispielsweise Rahmen- oder Sonderzeichen aus einer Codepage verwenden, mit nur geringen Änderungen auch auf modernen UTF-8-fähigen Konsolen darzustellen.
uint8_t zeichen;
.
uprintf("Eine Zeichenausgabe: %c", zeichen);
Für die Ausgaben von Glyphen einer Codepage mittels UTF-8 wurden Lookup-Tables für die hier
im Ascii-Picker verwendeten Zeichen erstellt, die in seperaten Dateien abgelegt sind:
Download Lookup-Tables und Demoprogram: https://www.jjflash.de/downloads/cp2utf_output.zip Ausgabe des Demoprogramms
|