1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
my %windows_1252 = (
'\x00' => '',
'\x01' => '',
'\x02' => '',
'\x03' => '',
'\x04' => '',
'\x05' => '',
'\x06' => '',
'\x07' => '',
'\x08' => '',
'\x0B' => '',
'\x0C' => '',
'\x0E' => '',
'\x0F' => '',
'\x10' => '',
'\x11' => '',
'\x12' => '',
'\x13' => '',
'\x14' => '',
'\x15' => '',
'\x16' => '',
'\x17' => '',
'\x18' => '',
'\x19' => '',
'\x1A' => '',
'\x1B' => '',
'\x1C' => '',
'\x1D' => '',
'\x1E' => '',
'\x1F' => '',
'\x7F' => '',
'\x80' => '€',
'\x81' => '',
'\x82' => '‚',
'\x83' => 'ƒ',
'\x84' => '„',
'\x85' => '…',
'\x86' => '†',
'\x87' => '‡',
'\x88' => 'ˆ',
'\x89' => '‰',
'\x8A' => 'Š',
'\x8B' => '‹',
'\x8C' => 'Œ',
'\x8D' => '',
'\x8E' => 'Ž',
'\x8F' => '',
'\x90' => '',
'\x91' => '‘',
'\x92' => '’',
'\x93' => '“',
'\x94' => '”',
'\x95' => '•',
'\x96' => '–',
'\x97' => '—',
'\x98' => '˜',
'\x99' => '™',
'\x9A' => 'š',
'\x9B' => '›',
'\x9C' => 'œ',
'\x9D' => '',
'\x9E' => 'ž',
'\x9F' => 'Ÿ'
);
sub strip_controlchars {
my $text = shift;
my $arg_value = shift;
my $ctx = shift;
if ($arg_value == 1) {
$text =~ s/[\x00-\x08\x0B\x0C\x0E\x0F\x10-\x1F\x80-\x9F]//g;
} elsif ($arg_value == 2) {
my $controlchar;
foreach $controlchar (sort keys(%windows_1252)) {
$text =~ s/$controlchar/$windows_1252{$controlchar}/g;
}
}
return $text;
}
1; |
Partager