#17 British pound symbol won't parse

closed-wont-fix
None
5
2003-08-27
2003-08-23
Chad Cloman
No

Version 0.93.1, Windows, embedded binaries.

The symbol for the British currency (Ł) in the item
title hoses the processing of the attached XML file. If
you remove that character, it works fine.

I have traced this down to the expat parser. When it
attempts to parse this XML file, it appears to
terminate rather than return with an error. I don't
know Perl well enough to understand what's happening,
but it is similar to the type of return you get with an
unhandled exception or the exit of a shell. What I do
understand is that the code enters XML::Parser::parse()
from XML::Simple::build_tree() and then resumes
execution after this line in load_channel():
my $data = eval { XMLin($channel_xml, forcearray=> [
"item" ], keyattr => [ ], suppressempty=>undef ) };

Note the use of 'eval' which essentially acts like a
new shell. Thus when expat terminates, program control
returns to the line immediately after this one.
Apparently expat does not return an error code, because
the $@ error-processing is not invoked.

The pound sign (Ł) is a weird character with an ASCII
code of 163 (A3). Is this a known problem and is there
a workaround?

Discussion

  • Chad Cloman

    Chad Cloman - 2003-08-23

    Corrected Sample XML

     
  • Chad Cloman

    Chad Cloman - 2003-08-23

    Logged In: YES
    user_id=810746

    Oops. Wrong file. Here is the correct one.

     
  • Chad Cloman

    Chad Cloman - 2003-08-23

    Logged In: YES
    user_id=810746

    This is a duplicate of bug #764335. [Note to self: Read
    pre-existing bugs before submitting new ones...]

    If you concur, please go ahead and close this one.

     
  • Morbus Iff

    Morbus Iff - 2003-08-27
    • status: open --> closed
     
  • Morbus Iff

    Morbus Iff - 2003-08-27
    • assigned_to: nobody --> morbus
    • status: closed --> closed-wont-fix
     

Log in to post a comment.