in reply to [SOLVED] XML::Twig - Parsing XML file with incorrect encoding in declaration

Although I normally don't like editing XML files with anything other than a proper module, in this case it might be appropriate. Also, luckily, the <?xml...?> declaration happens right at the top of the file. The following will work if the only change you are making is "utf-16" to "utf-8", obviously it won't work if the name of the target encoding is longer...

open my $fh, '+<:utf8', 'file.in.xml' or die $!; my $line = <$fh>; $line=~s/<\?xml.+encoding="\Kutf-16"/utf-8" / or die "didn't match line: '$line'"; seek $fh,0,0 or die $!; print $fh $line; close $fh;

Replies are listed 'Best First'.
Re^2: XML::Twig - Parsing XML file with incorrect encoding in declaration
by ateague (Monk) on Sep 18, 2017 at 13:49 UTC

    Thanks for the tip

    I used a variation of this for the final processing to get the job out the door while I discuss the XML declaration issues with the Department of XML Generation Department