my @emails = split /\n/, q|foo =?utf-8?B?UGF1c2UgRG9yw6ll?= =?UTF-8?Q?Village_Bambous_=2D_Chambre_d=27_H=C3=B4tes?= =?utf-8?B?YmVybmFyZCB2ZXJpdMOp?= =?ISO-8859-1?B?TGHrdGl0aWE=?= Picot =?iso-8859-1?Q?Ancie_chambres_d=27h=F4tes?= |; use utf8; use Encode qw(encode decode); foreach (@emails) { $_ = decode('MIME-Header', $_); print "FOO: $_\n"; print $IN->header; use Data::Dumper; print Dumper($_); print "FOO: " . utf8::is_utf8($_) . "\n"; if (utf8::is_utf8($_)) { print "content..\n"; $_ =~ s/([\200-\377]+)/from_utf8({ -string => $1, -charset => 'ISO-8859-1'})/eg; } print Dumper($_); print "FOO: " . utf8::is_utf8($_) . "\n"; print "\n\n"; }