$ perl -MEncode -Mcharnames=:full -wE' $bad = "\xE9abc"; say sprintf "U+%04X %s", ord, charnames::viacode(ord) for split //, decode("UTF-8", $bad); ' U+FFFD REPLACEMENT CHARACTER U+0061 LATIN SMALL LETTER A U+0062 LATIN SMALL LETTER B U+0063 LATIN SMALL LETTER C