sub de_cp1252 {
my( $self, $s ) = @_;
# Map incompatible CP-1252 characters
$s =~ s/\x82/,/g;
$s =~ s-\x83-f-g;
$s =~ s/\x84/,,/g;
$s =~ s/\x85/.../g;
$s =~ s/\x88/^/g;
$s =~ s-\x89- °/°°-g;
$s =~ s/\x8B/~-g;
$s =~ s-\x99-TM-g;
$s =~ s/\x9B/>/g;
$s =~ s/\x9C/oe/g;
# Now check for any remaining untranslated characters.
if ($s =~ m/[\x00-\x08\x10-\x1F\x80-\x9F]/) {
for( my $i = 0; $i < length($s); $i++) {
my $c = substr($s, $i, 1);
if ($c =~ m/[\x00-\x09\x10-\x1F\x80-\x9F]/) {
printf(STDERR "warning--untranslated character 0x%02X in input line %s\n",
unpack('C', $c), $s );
}
}
}
$s;
}