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