[Vienna-pm] Re: unicode

peter pilsl pilsl at goldfisch.at
Tue Sep 28 17:44:30 CDT 2004


danke.

das mit dem collate in mod_perl muss ich mir genauer anschauen. Aber da 
muss es ohnehin anders laufen, weil da geht nix mit binmode.

Ich habe gerade ein script hingebogen, dass aktuell alles tut, was ich 
will (JUCHUU !!!). Die Frage ist nur, ob das "Zufall" ist oder ein 
annehmbares Konzept.

also, ich verzichte auf binmode(STD,":utf8") und muss dafür die 
eingehenden parameter decoden und vor dem ausschreiben wieder encoden. 
Klingt das vernünftig?

Damit das sortieren mit dem sort funktioniert mache ich ein downgrade 
und damit das mit dem lc() funktioniert, mache ich vorher wieder ein 
upgrade.
Klingt das zu schwindelig?

in pseudocode sieht das dann so aus (html-header natürlich UTF8)

....
my $input=$cgi->param('myfield');
utf8::decode($input);
utf8::downgrade($input);     # otherwise sort will not sort according to
                              # my LC_COLLATE-setting and I need
                              # localized sort (mainly german data)


my $value=do_a_lot($input);  # do some dataprocessing including sorting

utf8::upgrade($value);       # otherwise the lc() in the next line would
                              # not lower chars like german umlauts
$value=lc($value);
utf8::downgrade($value);     # to make sort work again

$value=do_a_lot_more($value); # do some more dataprocessing and sorting

utf8::encode($value);
print $value;



macht das irgendwo sinn oder schreit das nach Problemen? das mit dem 
downgrade liegt mir ein wenig im bauch, aber es funktioniert, auch mit 
m// u s/// - operationen.

downgrade heisst ja, dass das utf8-flag intern nicht mehr gesetzt ist. 
das heisst also, dass der string nicht mehr als 2-byte-folge gelesen 
wird (was ja imho die probleme beim sortieren macht), sondern einfach 
als folge von \x{...}-Zeichen.  Warum dann das lc nicht funktioniert ist 
  fraglich. Oder hab ich das mit dem utf-8 flag immer noch nicht gecheckt.
Ist das flag "gut" oder "schlecht". Offensichtlich kann man auch unicode 
bearbeiten, wenn das flag nicht gesetzt ist. Ist das flag nicht eh eher 
ein hilfsflag für methoden, die standardmässig nicht mit unicode 
zurechtkommen u dann irgendeinen multibyte-trick fahren oder bin ich da 
grad völlig im Essigglas mit dieser These?

Mir kommt schon vor, dass unicode noch sehr _bleeding edge_ ist und 
nicht ganz ausgereift ...

danke,
peter




-- 
mag. peter pilsl
goldfisch.at
IT-management
tel +43 699 1 3574035
fax +43 699 4 3574035
pilsl at goldfisch.at


More information about the Vienna-pm mailing list