use strict; use warnings; use Encode qw(encode); use XML::LibXML; my $uchar = chr(195) . chr(154); my $xml = ' ' . $uchar . ''; output($uchar); my $dom = XML::LibXML->load_xml(string => $xml); my $node = $dom->findnodes('/container/node')->to_literal; output($node); my $encoded = encode('UTF-8', $node); output($encoded); sub output { my $str = shift; print "$str\n"; for (1..length($str)) { print ord(substr($str, $_-1)), ': '; } print "\n"; }