Hejsa,
Jeg kører ikke utf8 men mit program modtager noget utf8-data.
Altså var min tanke at konvertere det til ISO-8859-1
Perl har funktionen utf8::decode som ser fin ud, men den driller
mig pænt meget...
Det er som om den medfører at der opstår 2 versioner af min variabel.
Se her:
perl -e '$oe8 = "\xc3\xb8"; utf8::decode($oe8); print ord($oe8)."\n"; @l = unpack("C*", $oe8); print "@l\n"'
giver mig følgende output:
248
195 184
Forklaring: (som jeg tror/troede det virker)
- $oe8 tildeles 2 bytes som er et utf8 encodet ø
- utf8::decode konverterer $oe8 til ISO-8859-1
- print ord($oe8) printer 248 som er ISO-8859-1 værdien for ø
- unpack C* laver en byte-liste af hvad der måtte være i $oe8
- print @l printer listen
Men jeg fatter ikke hvordan $oe8 stadig _også_ kan indeholde de utf8
encodede tegn...
Nogen der kan forklare hvordan det hænger sammen?
Det hele foregår på en kubuntu-kasse, perl er version 5.8.8
/Morten