[Allegro] Frage zu P/Q-Tabelle

Bernhard Eversberg ev at biblio.tu-bs.de
Di Sep 30 16:02:11 CEST 2008


Zu Bergers Fragen erst einmal, vorbehaltlich weiter Ausfuehrungen,
auf die Schnelle ein paar Hinweise betr. die anscheinend wichtigsten
Unklarheiten:

> 
> Dazu habe ich nun folgende Fragen:
> 
> a) "208 117" ist mitnichten legales UTF-8 (es ist ja legales
>    OSTWEST), die Ersetzung funktioniert aber dennoch. Bug oder
>    Feature? D.h. behaelt sich allegro vor, in zukuenftigen Versionen
>    Ersetzungsbefehle, die kein valides UTF-8 enthalten, als
>    Fehler zu quittieren bzw. zu verwerfen?
Nein. Validitätsprüfung wäre ja auch recht aufwendig.

>    [Das Handbuch 10.2.4.7 spricht recht vage von "Kombinationen
>    von 2 bzw. 3 Zeichen", gemeint sind aber gerade keine Zeichen!]
Nein, Bytes.
> 
> 
> b) In UTF-8 ist immer klar, wo ein Zeichen anfaengt und ob ein
>    Byte ein Zeichen bzw. ein Zeichenanfang oder im inneren einer
>    Bytesequenz vorkommt. Dementsprechend - wenn man P/Q-Tabellen
>    fuer einzelne UTF-8-Zeichen nutzt, gibt es immer maximal einen
>    Eintrag, der als Ausgangspunkt der Ersetzung zutreffend ist.
>    Nutzt man es hingegen fuer Kontraktionen, wird die Reihenfolge
>    wichtig (ich gehe mal davon aus, dass anders als bei p/q keine
>    Ersetzungsmatrix aufgebaut wird, sondern eine sequentielle
>    Abarbeitung erfolgt): Werden P/Q-Tabellen so wie eingegeben
>    abgearbeitet oder aus Effizienzgruenden durchsortiert?
> 
wie eingegeben.

> c) unicode.rtf sagt, "Wenn kein P/Q-Befehl greift, treten die
>    p/q-Befehle in Kraft." 

Das ist so gemeint: Ein Byte x oberhalb 127 loest Pruefung der P-Codes
aus, in der gegebenen Reihenfolge der P-Zeilen.
--  Bei Uebereinstimmung wird x mit dem oder den nachfolgenden Bytes
ersetzt durch die Werte der P- bzw. Q-Zeile. Die so zugeordneten
Zeichen werden keiner weiteren Prüfung/Umwandlung per p/q unterzogen.
--  Bei Nichtübereinstimmung wird x dann per p- bzw. q-Tabelle umcodiert.
Druckercodierungen sollte und kann man in den hier relevanten Fällen
vermeiden.


B.E.



Mehr Informationen über die Mailingliste Allegro