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. |