Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re: zapping gremlins

by TedPride (Priest)
on Jul 02, 2006 at 07:52 UTC ( #558834=note: print w/replies, xml ) Need Help??


in reply to zapping gremlins

Won't this fix your problem?
use HTML::Entities; encode_entities($mystr);
Given, you might still want the curly quotes replaced with flat quotes, but if your object is just to make the text display properly, this should do the job.

Replies are listed 'Best First'.
Re^2: zapping gremlins
by wfsp (Abbot) on Jul 02, 2006 at 09:41 UTC
    I agree. I think when the OP refers to "clean up" he may need decode_entities. It is worth noting that decode_entities returns utf8. It can bite you if you aren't expecting it.

    My rule of thumb is either not decode (leave the HTML as it is) or (if your not otherwise working with utf8) do a manual conversion similar to what imp discusses above.

    #!/usr/bin/perl use strict; use warnings; use HTML::Entities; print encode_entities(chr(0x92)), "\n"; print encode_entities(chr(0x2019)), "\n"; print sprintf '%02X', ord decode_entities('’'); __DATA__ ’ ’ 2019

    update: Misread the question.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://558834]
help
Chatterbox?
[ambrus]: Corion: ah, so you want a library that parses HTTP, and you want to do the IO yourself, and don't want a full AnyEvent wrapper.
[ambrus]: Corion: I think I parsed a HTTP header from a string with LWP once. You can definitely use that to create a HTTP message too. The problme is
[ambrus]: that if you do that, you'd have to find where each HTTP response ends, which is nontrivial if you want persistent connections (essential for performance if you have small requests).
[Corion]: ambrus: Yes, ideally an API that I feed the incoming data piece by piece and that I can ask "is that response done" and "what should I do next" and "please construct the appropriate redirect for me"
[Corion]: ambrus: Yes, ideally the module would do all that nasty stuff for me and give me a way to ask it what the current situation is
[ambrus]: Corion: you could also consider using some wrapper over the multi interface of curl, I think Net::Curl might be a good one, since implementing enough of what it expects from the event loop might be easier than a full AnyEvent interface.
[ambrus]: Corion: you could also consider using IO::Async and its POE driver and some HTTP module for it, but I don't know if that would solve your problems with AnyEvent+POE

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (16)
As of 2016-12-07 16:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    On a regular basis, I'm most likely to spy upon:













    Results (130 votes). Check out past polls.