use strict; use warnings; use XML::DOM; my $xml = <<"__EOI__"; \xC3\xA9 __EOI__ my $parser = new XML::DOM::Parser; my $doc = $parser->parse($xml); $doc->printToFile("test.xml"); #### >perl a.pl >perl -e"$/=\16; while (<>) { my $s=uc unpack 'H*', $_; $s=~s/..\K/ /g; print qq{$s\n}; }" test.xml 3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E 3D 22 31 2E 30 22 20 65 6E 63 6F 64 69 6E 67 3D 22 55 54 46 2D 38 22 3F 3E 0A 3C 54 45 53 54 3E 20 E9 20 3C 2F 54 45 53 54 3E 0A #### use strict; use warnings; use XML::DOM; my $xml = <<"__EOI__"; \xC3\xA9 __EOI__ my $parser = new XML::DOM::Parser; my $doc = $parser->parse($xml); open my $fh, ">:utf8", "test.xml" or die $!; $doc->printToFileHandle($fh); #### >perl a.pl >perl -e"$/=\16; while (<>) { my $s=uc unpack 'H*', $_; $s=~s/..\K/ /g; print qq{$s\n}; }" test.xml 3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E 3D 22 31 2E 30 22 20 65 6E 63 6F 64 69 6E 67 3D 22 55 54 46 2D 38 22 3F 3E 0A 3C 54 45 53 54 3E 20 C3 A9 20 3C 2F 54 45 53 54 3E 0A #### open my $fh, ">:utf8", "test.xml" or die $!; print($fh "\x{FEFF}"); $doc->printToFileHandle($fh); #### ...Fix the line... open my $fh, ">:encoding(cp1252)", "test.xml" or die $!; $doc->printToFileHandle($fh);