[Allegro] Umcodierung von utf8-Daten

Heinrich Allers allers at t-online.de
Mi Jan 9 11:37:02 CET 2013


Hallo Herr Schleifenbaum:

> da derzeit der Umcodierung von utf8-Daten mittels ucodes.xpt aufgrund 
> des Speicherlimits von 8000 Byte Grenzen gesetzt sind,
> bin ich auf der Suche nach einer alternativen Umcodierung.
> ...
> Oder kennt jemand eine andere Methode?

Ja. Lassen Sie mich sie skizzieren:

Ich benutze eine Kombination des FLEX-Befehls 'xcode U' (Konvertierung von UTF-8-Kodes in 
Entitätenzahlen) und der VS-Methodik (Verlautbarung 164).

Ich erkläre es mal an einem zwar konstruierten, aber praktisch eben ausprobierten Beispiel:

Stehe in #20 die UTF-8-kodierte Zeichenfolge 'aaa äöü bbb' (aber wie gesagt, in der Datenbank steht 
nicht 'äöü', sondern die 2-bytigen UTF-8-Kodierungen dieser Zeichen) und ich möchte diese Zeichenfolge 
in ANSI-Kodierung umwandeln: dann mache ich das mit der FLEX-Datei

expo f rs.txt
var #20\mes\wri\wri n
xcode U&# ;
ins #20a\mes\wri\wri n
disp p rs\depos "a"\ins #20b
var #20b\mes\wri
close x

und dieser dort angesprochenen Export-Parameterdatei rs.apr:

zl=0
zb=" "
dx=1
ze=13 10
zm=0
ae=13 10
fl=0
ks=0
ke=C &0
ff=0
i4=1
i5=_
i6=10
ib=59
p & 9
#-a
#20a
#+#

Ferner lasse ich Hilfsdatensätze dafür sorgen, daß in Reg. 10 diese Einträge auftauchen:

ää
öö
üü

Und fertig! 

Test: Ausführung der FLEX-Datei rs.flx ergibt nacheinander folgende Meldungen auf dem Bildschirm:

aaa äöü bbb
aaa àöü bbb
20aaaa äöü bbb

In der Protokolldatei rs.txt steht der gleiche Inhalt, aber mit dem Vorteil der geringeren Flüchtigkeit und 
deswegen besserer Studierbarkeit.

###

Das ist das Prinzip "meiner" Methodik. Wirkt etwas umständlich - aber der Umstand zahlt sich aus, wenn 
man es mit Tausenden von Zeichen zu tun hat, die man zu versorgen hat (z.B. bei CJK-Aufgaben).


Mit besten Grüßen von

Heinrich Allers

allers at t-online.de * http://www.h-allers.de
Netztagebuch: http://heinrich-erlo-ger.blogspot.com/
Bitácora: http://heinrich-erlo-spa.blogspot.com/




Mehr Informationen über die Mailingliste Allegro