PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Programm-Codes und Zeichen - Sonderzeichen rationell aus Alt+nnn



LX-Ben
26.07.03, 15:37
1. Zu Beginn eine Kurzdarstellung, da sie das Verständnis für die
Zusammenhänge erleichtert. Somit ist schon die Überschrift falsch :D -
es gibt gar keine "Programm-Codes": Computer kennen nur Bytes, also
die Informationsmenge aus 2 hoch 8 Bits und somit 256 verschiedene
Darstellungsmöglichkeiten. Bytes-Folgen werden in Dateien gespeichert.

Wird eine Datei als ausführbar deklariert und gestartet, so werden
(im einfachsten Fall) die Bytes nacheinander dem Prozesser/der CPU
übergeben, der sie als Prozessorbefehle interpretiert und anhand
der in der CPU 'eingebrannten' Prozessorbefehle ausführt - es handelt
sich hierbei um maschinennahe Programmdateien. Die meisten Programme
sind jedoch heute 'mit Sprachen geschrieben', dh. menschlich verständ-
liche Anweisungen, die 'an das Sprachenprogramm übergeben werden',
das wiederum weiss, aus welchen Anweisungen welche (meist) Vielzahl
von Prozessorbefehlen an die CPU zu übergeben sind. Häufige Sprachen
sind die Scriptsprache (bash usw.), Programmiersprache C++ etc.
Die jedesmal erforderliche Umwandlung einer Anweisung in Prozessor-
befehle kostet natürlich Zeit. Da es aber meist auf hohe Geschwindigkeit
ankommt, werden Anweisungen zB. in der Programmiersprache C++ in
einem Compilierlauf einmalig in eine ausführbare Datei mit den Prozessor-
befehlen umgewandelt - je nach Sprache und Compiler laufen solche
Compilate 15 bis 50-mal schneller als im ständig umwandelnden
Interpretiermodus.

In solchen Codefolgen müssen sich natürlich auch Text-Codes befinden
(oder vom Programm generiert werden), damit uns das Programm seine
Ergebnisse mitteilen kann: Das sind einfach Code-Abschnitte, die nicht
als Programmcode an den Prozessor übergeben werden, sondern an die
Grafikkarte zur Darstellung von Text-Zeichen auf dem Bildschirm.
Grafische Datenausgaben erfolgen nach dem gleichen Prinzip, aber pixel-
/punktweise und damit deutlich aufwändiger.

2. Auch Text-Codes sollen möglichst schnell dargestellt werden können,
ihr Pixel-Darstellungsmuster für den Bildschirm ist daher in einem
PC-ROM-Bereich 'fest eingebrannt': Die Feststellung ist wichtig, denn je
nach Alter des PCs kann ein Euro-Sonderzeichen vorhanden sein oder nicht.
=== HIER ENDET DER VORGESCHALTETE INFORMATIONSTEIL===

3. Es gibt somit 256 mögliche Text-Codes. Die ASCII-Codes 0-31 sind
Bildschirm- bzw. Drucker-Steuerzeichen. Die Textzeichen 32-127 sind
standardisiert und dürften auf den meisten Tastaturen 'abgebildet
sein' - dh. es gibt eine Taste, mit der dieser Text-Code erzeugt
und gleichzeitig auf dem Bildschirm dargestellt werden kann. Die
Text-Codes ab 128 bis 256 gelten als Sonderzeichen.

Da Tastaturen aber nur über wenig mehr als hundert Tasten verfügen -
welchen brauchbaren Zugriff auf diese Sonderzeichen gibt es? Unter
DOS-Betriebssystemen gibt es eine residente Routine 'AltGR gedrückt
halten plus ASCII-Code auf dem Ziffernblock antippen'. Das gibt es
unter Linux auch, aber nur in der Textconsole (Strg+Alt+F1..F8)!
Natürlich sehr umständlich dieses Hin- und Herschalten zwischen
Textconsole und kde-(gnome-)Oberfläche. Und ohne eine Tabelle
'welcher Text-Code erzeugt welches Zeichen' ein frustrierendes
Probiergeschäft. Daher habe ich mir mal diese Tabelle in einer
Textconsole systematisch als Datei erstellt (Beispiel für ± ):

echo Alt+177 = 177 >> /tmp/ascii.tab REM Zeichen ±
..
echo Alt+124 = 124 >> /home/<user1>/ascii.tab REM piping-Zeichen

Mit diesen Beispielen dürfte es keine Probleme geben, doch bereits
mit dem Textcode 164 hapert es bei mir mit der im ROM gespeicherten
Pixelausgabe auf dem Bildschirm - dort erscheint ein Kästchen statt
des Euro-Symbols, während mein HP-LaserJet4 Plus kein Kästchen,
sondern ein einwandfreies Eurosymbol druckt. Probieren geht also
hier über studieren; zB. haben die Zeichen 128-160 bei mir nur
Kästchen angezeigt, das könnte bei anderen PCs aber anders sein.

Wahrscheinlich sind in einigen gehobenen Textverarbeitungen solche
Tabellen bereits eingearbeitet, aber mir ging es um den einfachen
gelegentlichen Zugriff.

4. Und so kann die Tabelle genutzt werden: Die Zeichen können per
Ziehen mit der linken Maustaste markiert und Str+Einfg in den
Zwischenspeicher übernommen sowie mit Shift+Einfg in jede kde-Edit-
anwendung als auch in die kde-konsole übernommen werden. Diese
Lösung ist nicht übermäßig elegant, aber sie funktioniert narrensicher.

Für die gelegentliche Nutzung reicht 'kwrite' auf die nachstehend zu
speichernde Tabelle etwa als /home/<user1>/ascii.tab. Für häufigere
Nutzung erstellt man sich ein script'chen und macht es ausführbar :)

#!/bin/bash
cd ~
kwrite ascii.tab

--------
Neben diesem eher einfachen Lösungsbedarf gab es schon häufiger
Fragen nach "Wie kann ich eine Befehlsfolge auf eine Sondertaste legen?"
Zu diesem Thema bitte die Suchen-Funktion "*lineak*" benutzen.

==================
€=128-160 ¡=161 ¢=162 £=163 €=164 ¥=165 Š=166 §=167 š=168 ©=169 ª=170
«=171 ¬=172 _=173 ®=174 ¯=175 °=176 ±=177 ²=178 ³=179 Ž=180 µ=181 ¶=182
·=183 ž=184 ¹=185 Ç=199 È=200 É=201 Ê=202 Ë=203 Ì=204 Í=205 Î=206 Ï=207
Ð=208 Ñ=209 Ò=210 Ó=211 Ô=212 Õ=213 Ö=214 ×=215 Ø=216 Ù=217 Ú=218 Û=219
Ü=220 Ý=221 Þ=222 ß=223 à=224 á=225 â=226 ã=227 ä=228 å=229 æ=230 ê=231
è=232 é=233 ê=234 ë=235 ì=236 í=237 î=238 ï=239 ð=240 ñ=241 ü=242 ó=243
ô=244 õ=245 ö=246 ÷=274 ø=248 ù=249 ú=250 û=251 ü=252 ý=253 þ=254 ÿ=255
|=124 (piping-Zeichen, falls das bei jemand auf der Tastatur fehlt).
==================
REM Und nun bin ich platt - alle Kästchen-Zeichen zB. 128-160 bei Darstellung
mit kwrite werden im mozilla-firebird als Eurozeichen dargestellt - Überraschung :p

LX-Ben
08.10.03, 08:39
Passt zwar nicht ganz zum Beitrag, aber ein separates Thema lohnt nicht.

Akzente setzen unter Linux schreibt c't 21/2003 Seite 193.
Frager: Auf meinem Linux-PC kann ich keine Akzente schreiben, etwa
für das Wort "Varieté". Wo kann ich das ändern?
c't: Am schnellsten ändert das der Super-User root in der Datei
/etc/X11/XF86Config bzw. /etc/X11/XF86Config-4 - dort steht das
Keyboard als Eingabegerät.
Löschen Sie diese Zeile -- Option "XkbVariant" "nodeadkeys"
REM Das sofortige Löschen ist eine Unsitte, rückkehrsicherer ist
# Option "XkbVariant" "nodeadkeys" [dh. auf REM gesetzt mit #]

Unter SuSE8.2 habe ich diese drei namensähnlichen Dateien gefunden
XF86Config XF86Config.saxsave XF86Config.YaST2save
mit praktisch gleichem Inhalt und nach dem Vorsichtsprinzip alle
drei geändert. Nach Abmeldung und Wieder-Anmeldung (Neustart des
X-Servers) klappt das Akzentsetzen problemlos: ´ antippen und e
tippen führt zu é .

c't: Eine Möglichkeit, die auch Anwendern ohne root-Rechte offen
steht, bietet das KDE-Kontrollzentrum unter Regionaleinstellungen -
Tastaturlayout. Nachdem das Kreuz für "Tastaturlayouts aktivieren"
gesetzt ist, kann man ein Layout mit toten Tasten setzen, etwa
"basic". Wie in Windows zeigt KDE ein Ländersymbol in der Taskleiste
und erlaubt den schnellen Wechsel per Kürzel (Strg+Alt+K). Diese
und andere Tastenkombos ändern Sie eine Ebene tiefer unter
"Tastaturkürzel".
REM Diese Aussage wurde nicht überprüft.

Rennie
02.11.03, 20:32
Moin!

Einfachere Möglichkeit die akzentuierten Zeichen unter SuSE einzuschalten ist es, im Yast unter der Tastatureinstellung (findet man leider bei Grafikkarte + Monitor) das Häkchen bei "akzentuierte Zeichen ausschalten" wegzunehmen. Dann klappt's auch mit der Variante nodeadkeys.

Ciao


Rennie