spiros has asked for the wisdom of the Perl Monks concerning the following question:
The actual code that does the regex is :Malformed UTF-8 character (unexpected non-continuation byte 0x00, imme +diately after start byte 0xc3) in pattern match (m//) at /Users/spiro +s/.... line 90, <$fh> line 5.
I took some extra steps and in order to make sure all the strings I used where in UTF-8, i used Devel::Peek. Indeed all the SV's have the UTF-8 flag on:return $n if ( $token =~ m/^$term/i );
etc. Right before the warning, this was the output from Devel::Peek for that particular SV:SV = PVMG(0x1c6c2a0) at 0x1ab6a28 REFCNT = 1 FLAGS = (PADBUSY,PADMY,POK,pPOK,UTF8) IV = 0 NV = 0 PV = 0x2dd2d80 "alto"\0 [UTF8 "alto"] CUR = 4 LEN = 15 MAGIC = 0x2dd30b0 MG_VIRTUAL = &PL_vtbl_utf8 MG_TYPE = PERL_MAGIC_utf8(w) MG_LEN = 4
Some reading here and there revealed that this happens when a string contains 'wide characters' as in, character sequences thus regex wont work. I am truly, madly, deeply stuck here and this is making me ANGRY and SCARED. Your help would be much appreciated.SV = PVMG(0x1c6c2a0) at 0x1ab6a28 REFCNT = 1 FLAGS = (PADBUSY,PADMY,POK,pPOK,UTF8) IV = 0 NV = 0 PV = 0x2dd2d80 "ba\303\261o"\0 [UTF8 "ba\x{f1}o"] CUR = 5 LEN = 15 MAGIC = 0x2dd30b0 MG_VIRTUAL = &PL_vtbl_utf8 MG_TYPE = PERL_MAGIC_utf8(w) MG_LEN = 4
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Malformed UTF-8
by Joost (Canon) on May 15, 2007 at 17:04 UTC | |
by spiros (Beadle) on May 15, 2007 at 17:10 UTC | |
by Joost (Canon) on May 15, 2007 at 17:12 UTC | |
by spiros (Beadle) on May 15, 2007 at 17:15 UTC | |
by Joost (Canon) on May 15, 2007 at 17:21 UTC | |
|