Bonjour,
Je lis un fichier codé en unicode qui contient des caractères accentués dans un programme perl. Dès que j'utilise une expression régulière sur les lignes qui contiennent ces caractères accentués, j'obtiens l'erreur : "Malformed UTF-8 character (unexpected non continuation character .....".
Je cherche le moyen 'éliminer cette erreur sans utiliser un no warnings ":encode(utf8)" (qui focntionne bien j'ai testé!). Je n'ai pas la possibilité de réencoder le ficier en entrée.
Voici un extrait de mon code :
Je cherche une focntion qui transforme le codage au moment de la lecture; Est-ce que ca existe ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 use XML::Simple; use strict; use warnings; use Carp; use Data::Dumper; use Encode; ..... open($PGTI,"fichier"); while (<$PGTI>) { my $ligne=$_; for ($ligne) { ... if ( $ligne =~ /<(.*)>(\d\d\/\d\d\/\d\d\d\d \d\d:\d\d:\d\d)/) { ... } } }
Je suis sur linux centos, perl v5.10
Merci de votre aide
Partager