Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/12/2006, à 12:32

gene69

[script] encodage (utf8, latin9 ...)

Bonjour,
je voudrais faire un petit script qui encode un texte en utf8. mon petit problème c'est qu'avec iconv il faut connaitre l'encodage de départ ce qui me convient peu. Existe t'il des petits machins qui permettent de trouver l'encodage d'un fichier? (en ligne de commande)


Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion

Hors ligne

#2 Le 08/12/2006, à 19:40

lidiriel

Re : [script] encodage (utf8, latin9 ...)

file -i mon_fichier

mais ca marche pas a tout les coup je crois.


x,k,ubuntu pour les pôtes et la famille pour oublier win_$_oft
debian xfce/fluxbox pour moi, linux soft revolution !

Hors ligne

#3 Le 09/12/2006, à 13:08

gene69

Re : [script] encodage (utf8, latin9 ...)

merci de ta réponse mais ça ne donne pas l'information que je cherche...


Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion

Hors ligne

#4 Le 09/12/2006, à 13:11

gene69

Re : [script] encodage (utf8, latin9 ...)

pourtant gedit et les autres savent bien quel type d'encodage ils lisent, je ne sais pas comment ils font mais ils le font. comment ils font pour le détecter?

je continue a chercher sur google


Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion

Hors ligne

#5 Le 09/12/2006, à 20:11

taxus

Re : [script] encodage (utf8, latin9 ...)

Selon la documentation de file:

If a file does not match any of the entries in the magic file,
it is examined to see if it seems to be a text file.
ASCII, ISO-8859-x, non-ISO 8-bit extended-ASCII character sets
(such as those used on Macintosh and IBM PC systems),
UTF-8-encoded Unicode, UTF-16-encoded Unicode, and EBCDIC
character sets can be distinguished by the different
ranges and sequences of bytes that constitute printable text
in each set.
If a file passes any of these tests, its character set is reported.

Il me semble que c'est ce que tu demandes...

Par exemple, si j'utilise file -i avec un fichier texte encodé en UTF-8, j'obtiens:

clavier.txt: text/plain; charset=utf-8

L'attribut charset me donne la table d'encodage: utf-8. Avec un texte encodé en ISO Latin 1 ou ISO-8859-1 (sur mon Pocket PC), j'obtiens:

Suggestions cadeaux.txt: text/plain; charset=iso-8859-1

file -i semble bel et bien retourner l'encodage. Suffit ensuite de traiter la chaîne retournée, avec awk ou gawk par exemple, pour ne retourner que l'encodage. (Mais ça fait 9 ans que j'ai pas touché à ça.)

Hors ligne

#6 Le 09/12/2006, à 20:34

mr_pouit

Re : [script] encodage (utf8, latin9 ...)

Tu peux essayer un script de ce style par exemple (j'ai fait avec cut par je connais pas awk tongue) :

for i in *.txt ; do
iconv -f $(file -i $i | cut -d\; -f2 | cut -d= -f2) -t utf8 $i -o $i.utf-8
echo "$i: done"
done

en remplaçant *.txt par ce que tu veux. wink
Les fichiers en utf8 sont créés avec l'extension supplémentaire ".utf-8", c'est pour éviter d'écraser les anciens, mais tu peux changer ça ^^.

Hors ligne

#7 Le 10/12/2006, à 10:58

lidiriel

Re : [script] encodage (utf8, latin9 ...)

Salut je comprend pas ce que tu veux si tu cherche l encodage utilise

file -i

comme je te l ai dit et comme le confirme taxus.
Mais les méthode de détection d encodage ne sont pas fiable. Les fichiers ne contienne pas cette information et les softs utilisent des algo pour le détecter.
Comme le confirme le man de file poster par taxus

If a file passes any of these tests, its character set is reported.

Sinon rexplique exactement ce que tu veux hmm mais dans ton premier post tu met :

trouver l'encodage d'un fichier?

En gros plus il ya de donnée dans ton fichier plus file a de chance de trouver le bon encodage.
Si tu trouve des info sur le net sur ce sujet post je pense qu'il aura des gens intéressé smile

Dernière modification par lidiriel (Le 10/12/2006, à 11:01)


x,k,ubuntu pour les pôtes et la famille pour oublier win_$_oft
debian xfce/fluxbox pour moi, linux soft revolution !

Hors ligne

#8 Le 11/12/2006, à 01:43

gene69

Re : [script] encodage (utf8, latin9 ...)

ok ... j'avais essayé avec un truc en utf8 locale par défaut ici bas, et file -i ne m'a pas sorti ce résultat...
j'ai vu deux ou trois projets interessant sur google (je n'ai plus leurs nom) mais pas assez reconnu pour être sur le serveur de ma fac.

Merci pour vos réponse et le début de script.


Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion

Hors ligne