[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