'jour tt le monde et au secours...
je ne fais pas "d'unix" par contre je suis obligé de l'administrer.
J'ai un plantage amusant.
Mon algo fait :
- concaténation de l'ensemble des fichiers présents dans un répertoire donnée avec awk
- puis une conversion UTF-8 vers ISO8859-1 avec iconv.
et là je plante dans iconv pour un caractère parasite qui se trouverai être un Line Feed (0A en hexa) en plein milieu d'un contenu XML avec des caractères spéciaux qui l'encadre
==> é mon line feed se trouve en plein milieu
==> C3 83 0A C2 A9 en hexa.
Etat des lieux
1- d'autres Line feed sont présent en amont du plantage et n'ont pas posé le problème.
2- d'autres é sans line feed à l'intérieur ont bien été transformés en '?' sans problème.
3- ce Line Feed est rajouté par la commande de concaténation
Conclusion : mauvaise ?
j'en conclu que c'est cette combinaison de caractères qui provoque le plantage de iconv.
Mais pourquoi la concaténation me rajoute ce line feed en plein milieu de mes é
1 semaine que je sêche...
concaténation
ma conversion du fichier concaténé ci-dessus
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 do if [ -f ${i} ] then cat ${i} | awk '{ if ( NF > 0 ) { print $0 } }' >> ${FICHIER_RESULTAT} ret=${?} if [ ${ret} -ne 0 ] then retour=6 logError "| Erreur ${retour} en concatenation du fichier ${i} dans ${FICHIER_RESULTAT} : retour ${ret}" >> ${LOG} exit ${retour} fi fi done
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 iconv -f UTF-8 -t ISO8859-1 ${temp}/$fic.abc > ${temp}/$fic.abc.iso
Partager