[Vienna-pm] Re: unicode

Karlheinz Zoechling kh at dartbase.com
Tue Sep 28 18:25:39 CDT 2004


On Wed, 29 Sep 2004 00:44:30 +0200, peter pilsl wrote:

>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?

vernuenftig: nein
praktikabel: eingeschraenkt ja 
;-)

aus http://search.cpan.org/~nwclark/perl-5.8.5/lib/utf8.pm :

$num_octets = utf8::upgrade($string)

Converts in-place the octet sequence in the native encoding (Latin-1 or 
EBCDIC) to the equivalent character sequence in UTF-X. $string already 
encoded as characters does no harm. Returns the number of octets necessary 
to represent the string as UTF-X. Can be used to make sure that the UTF-8 
flag is on, so that \w or lc() work as Unicode on strings containing 
characters in the range 0x80-0xFF (on ASCII and derivatives).

!!! Note that this function does not handle arbitrary encodings. !!!

das bedeutet: was in latin-1 oder ebcdic definiert ist geht. auf den 
vornamen der mutter des koreaners trifft das aber wahrscheinlich nicht zu... 
andererseits, wen interessiert ob koreanische eingaben korrekt 
sortiert/lowercased werden? probier's mal mit sonderzeichen ausserhalb des 
near-ascii range, da koennten die ersten probleme auftreten. 

>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?

nein, zu bekannt. ;-)

im ernst: es geht durchaus eine zeit lang gut - bis das erste "boese" 
zeichen auftaucht.

manpage:

$success = utf8::downgrade($string[, FAIL_OK])

wenn du mit sowas in produktion gehst mach auf jeden fall fail_ok true. 
jetzt zum testen gib alle moeglichen zeichen ein (am besten koreanisch) und 
beobachte was passiert, mit fail_ok true und false.

>Offensichtlich kann man auch unicode 
>bearbeiten, wenn das flag nicht gesetzt ist. 

kann man, aber es wird bei nicht gesetztem flag eben auch nicht als unicode 
behandelt. es kommt auf deine daten an ob das ergebnis trotzdem brauchbar 
ist. das ist das problem an der sache - du denkst dir testdaten aus und 
alles geht, bis dann einer kommt und etwas problematisches eingibt.

ich geh' jetzt schlafen, ich hab' schon lauter koreaner im hirn. ;-)

lg
karlheinz





More information about the Vienna-pm mailing list