Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

iconv inplace

7 réponses
Avatar
Mihamina Rakotomandimby (R12y)
Bonjour a tous
J'ai toute une arborescence d'un projet qui vien t de me parvenir qui
est en iso-8859-1
Je souhaite convertir tout cela en utf-8.
Iconv est mon ami, avec l'option -o ou --output, mais est-ce que c'est
"intelligent" de faire un:
iconv -f ISO-8859-1 -t UTF-8 le_fichier --output le_fichier
Sans passer par un fichier temporaire distinct?

7 réponses

Avatar
Kojak
Le Fri, 13 Feb 2009 10:35:52 +0300,
Mihamina Rakotomandimby (R12y) a écrit :

c'est "intelligent" de faire un:
iconv -f ISO-8859-1 -t UTF-8 le_fichier --output le_fichier
Sans passer par un fichier temporaire distinct?



Sauf version particulière, non, car tu vas te retrouver avec
un fichier vide. Donc tu es obligé de passer par un fichier
temporaire. Utiliser un script du genre :

#!/bin/sh

/usr/bin/iconv -f ISO-8859-1 -t UTF-8 "$1" >/tmp/$$toutf
/bin/mv /tmp/$$toutf "$1"

devrait régler ton problème.

--
Jacques.
Avatar
JKB
Le 13-02-2009, ? propos de
iconv inplace,
Mihamina Rakotomandimby (R12y) ?crivait dans fr.comp.os.unix :
Bonjour a tous
J'ai toute une arborescence d'un projet qui vien t de me parvenir qui
est en iso-8859-1
Je souhaite convertir tout cela en utf-8.
Iconv est mon ami, avec l'option -o ou --output, mais est-ce que c'est
"intelligent" de faire un:
iconv -f ISO-8859-1 -t UTF-8 le_fichier --output le_fichier
Sans passer par un fichier temporaire distinct?



Tu peux essayer ;-) mais personnellement, je m'abstiendrais. À ta
place, je compilerais dans un coin GNU iconv (pour utiliser l'option -c
qui vire d'autorité les caractères bizarres) et j'écrirais une
moulinette à grands coups de for et de find en passant par des fichiers
temporaires.

Cordialement,

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
Avatar
Paul Gaborit
À (at) Fri, 13 Feb 2009 08:46:24 +0000 (UTC),
JKB écrivait (wrote):
Le 13-02-2009, ? propos de
iconv inplace,
Mihamina Rakotomandimby (R12y) ?crivait dans fr.comp.os.unix :
Bonjour a tous
J'ai toute une arborescence d'un projet qui vien t de me parvenir qui
est en iso-8859-1
Je souhaite convertir tout cela en utf-8.
Iconv est mon ami, avec l'option -o ou --output, mais est-ce que c'est
"intelligent" de faire un:
iconv -f ISO-8859-1 -t UTF-8 le_fichier --output le_fichier
Sans passer par un fichier temporaire distinct?



Tu peux essayer ;-) mais personnellement, je m'abstiendrais. À ta
place, je compilerais dans un coin GNU iconv (pour utiliser l'option -c
qui vire d'autorité les caractères bizarres) et j'écrirais une
moulinette à grands coups de for et de find en passant par des fichiers
temporaires.



Quitte à (er)compiler, regardez aussi du côté de 'recode' qui sait
réencoder sur place (ou plutôt qui gère tout seul l'utilisation d'un
fichier temporaire pou réécriture sur place ensuite).

Au fait, je ne vois pas l'intérêt de l'option '-c' puisqu'à ma
connaissance, il n'existe pas de caractères invalides en iso-8859-1.

--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Avatar
JKB
Le 13-02-2009, ? propos de
Re: iconv inplace,
Paul Gaborit ?crivait dans fr.comp.os.unix :

À (at) Fri, 13 Feb 2009 08:46:24 +0000 (UTC),
JKB écrivait (wrote):
Le 13-02-2009, ? propos de
iconv inplace,
Mihamina Rakotomandimby (R12y) ?crivait dans fr.comp.os.unix :
Bonjour a tous
J'ai toute une arborescence d'un projet qui vien t de me parvenir qui
est en iso-8859-1
Je souhaite convertir tout cela en utf-8.
Iconv est mon ami, avec l'option -o ou --output, mais est-ce que c'est
"intelligent" de faire un:
iconv -f ISO-8859-1 -t UTF-8 le_fichier --output le_fichier
Sans passer par un fichier temporaire distinct?



Tu peux essayer ;-) mais personnellement, je m'abstiendrais. À ta
place, je compilerais dans un coin GNU iconv (pour utiliser l'option -c
qui vire d'autorité les caractères bizarres) et j'écrirais une
moulinette à grands coups de for et de find en passant par des fichiers
temporaires.



Quitte à (er)compiler, regardez aussi du côté de 'recode' qui sait
réencoder sur place (ou plutôt qui gère tout seul l'utilisation d'un
fichier temporaire pou réécriture sur place ensuite).

Au fait, je ne vois pas l'intérêt de l'option '-c' puisqu'à ma
connaissance, il n'existe pas de caractères invalides en iso-8859-1.



En iso-8859-1, peut-être pas. Mais j'ai déjà eu des cas où un
éditeur que je ne citerais pas s'était marché sur les pieds et où un caractère
bizarre en fin de fichier faisait foirer iconv.

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
Avatar
Paul Gaborit
À (at) Fri, 13 Feb 2009 10:32:59 +0100,
J'écrivais (avec un peu de précipitation) :
[...]
Quitte à (er)compiler, regardez aussi du côté de 'recode'


~~~~~
[...]

Lire plutôt "Quitte à (re)compiler...". ;-)

--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Avatar
Eric Levenez
Le 13/02/09 09:45, dans ,
« Kojak » a écrit :

#!/bin/sh

/usr/bin/iconv -f ISO-8859-1 -t UTF-8 "$1" >/tmp/$$toutf
/bin/mv /tmp/$$toutf "$1"



Avec un petit && en fin de iconv pour ne pas faire le mv en cas de soucis.

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.
Avatar
Kojak
Le Fri, 13 Feb 2009 12:49:59 +0100,
Eric Levenez a écrit :

Avec un petit && en fin de iconv pour ne pas faire le mv en cas de
soucis.



Oui, et une 'trap' bien sentie pour faire le ménage... Mais bon,
on ne va pas lui mâcher tout le boulot non plus ! ;-)

--
Jacques.