6 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
13 sept. 2012 à 09:19
13 sept. 2012 à 09:19
Salut,
Sur quel système ou distrib es-tu ?
Parce que chez moi (mint) voilà ce que j'obtiens avec le code source de ce message d'une part et ton exemple d'autre part :
Sur quel système ou distrib es-tu ?
Parce que chez moi (mint) voilà ce que j'obtiens avec le code source de ce message d'une part et ton exemple d'autre part :
$ file -b -i affich-26060402-detecter-le-charset.htm text/html; charset=iso-8859-1 $ file -b --mime-encoding affich-26060402-detecter-le-charset.htm iso-8859-1 $ echo "<html>&e</html>" | file -b --mime-encoding - us-ascii $ echo "<html>&é</html>" | file -b --mime-encoding - utf-8 $
Effectivement mes résultats sont différents.
Hélas, je ne suis pas root sur ce serveur et ne peux pas mettre à jour/installer des paquets
Hélas, je ne suis pas root sur ce serveur et ne peux pas mettre à jour/installer des paquets
$ cat /etc/redhat-release CentOS release 5.4 (Final) $ file -v file-4.17 magic file from /usr/share/file/magic $ echo "<html>&é</html>" | file -b --mime-encoding - file: unrecognized option '--mime-encoding' Usage: file [-bcikLhnNsvz] [-f namefile] [-F separator] [-m magicfiles] file... file -C -m magicfiles Try 'file --help' for more information. $ echo "<html>&é</html>" | file -b --mime - text/html
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
13 sept. 2012 à 10:05
13 sept. 2012 à 10:05
Ok tu n'as pas l'option "--mime-encoding", mais tu as l'option "-i" :
Extrait :
Extrait :
-i If a file is a regular file, do not attempt to classify the type of the file further, but identify the file as specified in the STDOUT section.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
13 sept. 2012 à 10:33
13 sept. 2012 à 10:33
Il ne te reste plus qu'à construire ton propre fichier "/etc/magic" pour satisfaire tes besoins...
Je te laisse chercher sur le Net comment le faire ;-)
Je te laisse chercher sur le Net comment le faire ;-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
13 sept. 2012 à 15:22
13 sept. 2012 à 15:22
hello
essayer ce script perl : Perl script to detect encoding of one or multiple text files
essayer ce script perl : Perl script to detect encoding of one or multiple text files
Merci
J'avais justement commencé à regarder ce script
Mais il ne marche pas avec l'ISO8859-1, ça génère une erreur. Mais comme je n'ai besoin que de savoir si UTF8 ou non ça pourrait suffire.
Ça me plait pas de procéder comme ça (et de devoir faire un appel a perl pour si peu), mais bon si j'ai pas d'autre choix...Je vais déjà faire un truc avec ça alors :]
J'avais justement commencé à regarder ce script
Mais il ne marche pas avec l'ISO8859-1, ça génère une erreur. Mais comme je n'ai besoin que de savoir si UTF8 ou non ça pourrait suffire.
Ça me plait pas de procéder comme ça (et de devoir faire un appel a perl pour si peu), mais bon si j'ai pas d'autre choix...Je vais déjà faire un truc avec ça alors :]
J'ai donc intégré ce code à mon script, et ça fonctionne pour l'instant
Mais j'ai peur que dans certains cas, il puisse avoir un comportement tout autre :/
Pouvez-vous me donner votre avis ?
function convertir_utf8 {
if perl -e "use Encode::Guess; if(ref(guess_encoding(<>))) { exit 1; } else { exit 0; }"<<<"$*"; then iconv -f iso-8859-1 -t utf-8 <<<"$*"; else echo "$*"; fi
}
En entrée de cette fonction : du texte (tous caracères possibles, multiligne possible), soit en ISO-8859-1, soit en UTF8.
Et ça doit me sortir le même texte, en UTF8.
J'ai peur du comportement de guess_encoding : parfois il m'affiche des messages d'erreur "unknow encoding" sur certaines lignes (on dirait quil fait un traitement par ligne)
J'ai peur aussi que le iconv ait un comportement innatendu dans certains cas et ne transforme pas le texte (renvoie texte vide) ou le fasse mal
Cette façon de faire me parait mauvaise
Qu'en dites-vous?
Mais j'ai peur que dans certains cas, il puisse avoir un comportement tout autre :/
Pouvez-vous me donner votre avis ?
function convertir_utf8 {
if perl -e "use Encode::Guess; if(ref(guess_encoding(<>))) { exit 1; } else { exit 0; }"<<<"$*"; then iconv -f iso-8859-1 -t utf-8 <<<"$*"; else echo "$*"; fi
}
En entrée de cette fonction : du texte (tous caracères possibles, multiligne possible), soit en ISO-8859-1, soit en UTF8.
Et ça doit me sortir le même texte, en UTF8.
J'ai peur du comportement de guess_encoding : parfois il m'affiche des messages d'erreur "unknow encoding" sur certaines lignes (on dirait quil fait un traitement par ligne)
J'ai peur aussi que le iconv ait un comportement innatendu dans certains cas et ne transforme pas le texte (renvoie texte vide) ou le fasse mal
Cette façon de faire me parait mauvaise
Qu'en dites-vous?
Modifié par gnugo le 13/09/2012 à 07:58
rtfm de ? Le man file, je l'ai lu en entier, j'ai pas trouvé