diff --git a/cpanfile b/cpanfile index 3062244eb..a65bc87df 100644 --- a/cpanfile +++ b/cpanfile @@ -192,7 +192,7 @@ recommends 'Net::SMTP'; # Note: Perl 5.10.1 bundles 1.03 (per Unicode 5.1.0). recommends 'Unicode::Normalize', '>= 1.03'; -recommends 'Unicode::UTF8', '>= 0.58'; +recommends 'Unicode::UTF8', '>= 0.60'; ### Features ## @@ -319,7 +319,7 @@ feature 'safe-unicode', 'Sanitizes inputs with Unicode text.' => sub { # Note: Perl 5.8.1 bundles version 0.23. # Note: Perl 5.10.1 bundles 1.03 (per Unicode 5.1.0). requires 'Unicode::Normalize', '>= 1.03'; - requires 'Unicode::UTF8', '>= 0.58'; + requires 'Unicode::UTF8', '>= 0.60'; }; on 'test' => sub { diff --git a/src/lib/Sympa/Tools/Text.pm b/src/lib/Sympa/Tools/Text.pm index a8258e378..ef41927d7 100644 --- a/src/lib/Sympa/Tools/Text.pm +++ b/src/lib/Sympa/Tools/Text.pm @@ -307,8 +307,10 @@ sub guessed_to_utf8 { my $utf8; if ($Unicode::UTF8::VERSION) { - $utf8 = - eval { Unicode::UTF8::decode_utf8($text, Encode::FB_CROAK()) }; + $utf8 = Unicode::UTF8::decode_utf8($text) + if Unicode::UTF8::valid_utf8($text); + } else { + $utf8 = eval { Encode::decode_utf8($text, Encode::FB_CROAK()) }; } unless (defined $utf8) { foreach my $charset (map { $_ ? @$_ : () } @legacy_charsets{@langs}) {