AW: [Allegro] Umcodierung der Indexsuche (avanti)
Thomas Fischer
fischer at mail.sub.uni-goettingen.de
Mo Nov 13 13:19:36 CET 2006
Hallo Herr Fischer,
> Wenn ich in einer Suchmaske der ACWWW25-Schnittstelle
> "Müller" eingebe, wird das "M" analog der Anweisung in der
> I.APT in "m" gewandelt, das "ü" aber nicht in "ue".
> Vermutlich wird das schon vorher in irgendetwas anderes
> umcodiert, aber in was und wo?
>
> In eine Fehlermeldung habe ich das mal schreiben lassen, da steht als
> Suchbegriff:
> pers=M%C3%BCller
> Naja, da kann die I.APT wohl nix für, das sieht nach einer
> html-Ersetzung aus. Mit C3BC kann ich aber auch nichts anfangen.
Das ist, wie Herr Berger schon bemerkte, die URL-Kodierung der Unicode-Zeichen.
Ich denke, dass die ACWWW25-Schnittstelle nicht auf UTF-8 eingestellt ist und bin etwas erstaunt, dass Sie mit der Kodierung arbeiten.
> Die Codierung der html-Seite steht auf Unicode, setzt man Sie
> auf Westeuropäisch (Windows), dann findet sich tatsächlich
> der Indexeintrag "mueller".
Das wäre die nächstliegende Lösung, finde ich.
Wenn Sie doch mit UTF-8 arbeiten wollen, gibt es zwei Wege:
Zunächst muss in jedem Fall die URL-Kodierung rückgängig gemacht werden.
Mit Perl bekommt man bekommt z.B. so die Zeichen zurück:
$text =~ s/%(..)/chr(hex($1))/ge;
(etwas in der Art steht sicher auch in Ihrem Skript).
Wenn das dann UTF-8 für Latin-1 ist, kann man daraus Latin-1 machen:
$text =~ s/([À-ß])([€-¿])/chr((ord($1)-192)*64 + ord($2)-128)/ge;
Dann sind Sie wieder bei "Müller" und können Allegro darauf los lassen
(mit den an #-n definierten Sprungstellen für Register n).
Damit wird allerdings die Vielfalt der anderen Möglichkeiten von UTF-8-Zeichen nicht erfasst.
Wenn Sie damit arbeiten wollen, sollten Sie die Unicode-Tabellen von Allegro benutzen. Die Dokumentation dazu ist (m.E.) etwas spärlich, Herr Eversberg empfiehlt:
"Als Beispiele dienen du.apt und du-rtf.apt, daraus geht eigentlich alles hervor.
Im Handbuch 10.2.4.7 (online: h ac10-4=10.2.4.7), der auf die anderen Texte hinweist."
Mit freundlichen Grüßen
Thomas Fischer
Mehr Informationen über die Mailingliste Allegro