http://www.perlmonks.org?node_id=558834


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.