[Allegro] Unicode im Schreibfeld?
Thomas Berger
ThB at Gymel.com
Fr Jun 22 12:04:07 CEST 2007
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Liebe Frau Genest, liebe Liste,
> Heißt das, ich könnte z.B. eingeben "Walęsa, Lech" oder wie sähe
> die angesprochene Unicode-Eingabe aus? Was passiert damit im Index?
Verlautbarung 164 beschreibt zwei "Verfahren" fuer den Umgang mit
Unicode:
"Verfahren 2" ist eine Datenbank, die auch intern die Daten als
Unicode (genauer: UTF-8-codiert) speichert. Nachteil dieser
Methode ist, dass weder PRESTO (klarerweise) noch a99
(angekuendigterweise) *jemals* Dateneingabe erlauben werden.
Zur Unterstuetzung dieses Verfahrens wurden die P- und Q-
Tabellen eingefuehrt, sowie der Modus "U2" fuer das Einlesen
von UTF-8-codierten Daten mithilfe der neuen u-Tabelle.
Vorhandene Daten muessen klarerweise nach UTF-8 umgewandelt
werden, damit diese Methode eingesetzt werden kann.
"Verfahren 1" hingegen bedeutet, dass Zeichen "jenseits" des
Grundzeichensatzes als Entitaeten codiert werden. Ziemlich
analog zur Texel-Technik (VB 163) wurden hierfuer die VS-Sequenzen
eingefuehrt, sowie der Modus "U1" fuer das Einlesen von
UTF-8-codierten Daten mithilfe der neuen u-Tabelle.
In vorhandenen Daten muss eigentlich nur das "&" durch "&"
ersetzt werden, damit "&" freigeraeumt ist fuer die VS-Methode
(die VS-Methode ist maechtig, aus beliebigen Texten mit
frei waehlbaren Praefixen kann irgendetwas gemacht werden,
tendenziell sogar mehrstufig, die Unicode-Umwandlung mit U1
erzeugt allerdings fest "&" und Unicode-Codenummern)
In vorhandenen Parametern sind weiterhin die Zeichen des
Grundzeichensatzes so wie frueher zu behandeln, speziell
fuer HTML-und XML-Exporte ist zu beachten, dass "&" nicht mehr
escaped werden darf ("<" muss weiterhin).
Fuer uneingeschraenktes Cut&Paste ist man auch bei Verfahren 2 auf
"externes Editieren" angewiesen, das ist ohne die "Unicode-Verfahren"
allerdings auch nicht anders, ausser man nutzt CP1252 als
Windows-Codepage unter allegro (und eine solche Anwendung ist
zumindest mir nicht bekannt). Beim Cut&Paste vom Anzeigefenster ins
Schreibfeld muss man sich entscheiden: Soll das Anzeigefenster alle
Zeichen zeigen, dann verhaelt es sich wie ein "normales" Window,
Cut&Paste ins Schreibfeld geht also wegen Codierungsproblemen nur
eingeschraenkt. Schraenkt man die Anzeige so ein, dass es nicht
mehr zeigen kann als ohne Unicode-Verfahren, dann funktioniert Cut
& Paste wie bisher.
Ein Migrationspfad zu einer echten Unicode-Datenbank [Hoppla: Die
muesste auch etwas uber Collation sequences und Normalization wissen,
also: eine Datenbank, in der UTF-8 gespeichert ist] koennte so
aussehen:
1. Datenumwandlung "&" -> "&", Ergaenzen der Datenbank um VS-
Sequenzen, Umarbeiten der Parameterdateien auf Unicode-Verfahren 1
Beibehalten von OSTWEST als Grundzeichensatz.
[Dieser Schritt ist ziemlich schmerzlos: Nach der eigentlichen
Datenumwandlung kann man peu a peu alle Exporte ausprobieren und
schematisch die zwei oder drei zusaetzlich erforderlichen Zeilen
#dV, ia=, p & 9 eintragen.]
2. Umwandlung der Daten in einen vom Betriebssystem unterstuetzten
Zeichensatz, etwa CP850 oder CP1252 (oder 7bit plus HTML-Entitaeten)
Austausch (CP850) oder Verwerfen der meisten (CP1252) Codiertabellen.
In a99 nun Arbeit mit Standard-M$-Fonts.
[Hauptproblem hierbei: Die Standardparameter betreiben an derzeit
19 Stellen eine Font-Umschaltung, sind also mit der konkreten
(allegro-Font)-Belegung von disphead.rtf etc. verzahnt.]
3. Umwandeln der Daten in UTF-8
Nutzung von P- und Q-Tabellen in den Parametern (diese koennen
aus den VS-Sequenzen vermutlich generiert werden)
[Hauptproblem nun: Eingabe ist nur ueber Web-Anwendungen moeglich,
Scripte fuer eine ueberzeugende Normdatenverknuepfung in diesem
Kontext sind mir nicht bekannt]
In meiner Mail von vorgestern hatte ich eine Zusammenfassung von
Schritt 1 und 2 beschrieben, denn in der fraglichen Datenbank waren
*alle* nicht ueber die Tastatur eingebbaren Zeichen nach einem
privaten System codiert und mussten umgewandelt werden. Insofern
konnte ich "beschliessen", dass der Grundzeichensatz CP850 und nicht
allegro-OSTWEST sei.
viele Gruesse
Thomas Berger
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3-nr1 (Windows XP)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFGe56WhKFJT0F1FsoRAmj5AJ4zkqF/hKHyTgq+Od7/bBmIKO3U+gCfUo5y
s3dP0eDUAHUPtxNZM6dzfyU=
=zQsv
-----END PGP SIGNATURE-----
Mehr Informationen über die Mailingliste Allegro