Wget et caractères accentués

Wget et caractères accentués - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 07-01-2006 à 11:36:25    

Bonjour,
 
Je cherche à récupérer la playlist des flux multicanaux TV de ma freebox
 
je tape donc la commande suivante
 

Code :
  1. wget http://mafreebox.freebox.fr/freeboxtv/playlist.m3u


 
Seulement, lorsque je liste ensuite le fichier récupéré, j'ai des problèmes avec les caractères accentués du genre :
 
#EXTINF:0,324 - France 3 RhÎne-Alpes
ou
#EXTINF:0,12 - NRJ 12 Stéréo
 
J'ai essayé avec le paramètre -p, mais çà ne change rien....
J'ai beau le manuel de wget, je ne trouve pas la solution...
 
Merci de votre aide

Reply

Marsh Posté le 07-01-2006 à 11:36:25   

Reply

Marsh Posté le 07-01-2006 à 11:41:46    

c'est un problème de charset utf8 ou autre. Que donne  un $ file -i playlist.m3u  ?

Message cité 1 fois
Message édité par limax le 07-01-2006 à 11:42:30
Reply

Marsh Posté le 07-01-2006 à 11:53:52    

limax a écrit :

c'est un problème de charset utf8 ou autre. Que donne  un $ file -i playlist.m3u  ?


 
playlist.m3u: text/plain; charset=utf-8

Reply

Marsh Posté le 07-01-2006 à 13:06:40    

il te faut alors le convertir en  avec
$  iconv  -f utf-8 -t iso-8859-1 <  playlist.m3u >  playlist.latin1.m3u
 
je fais exactement le contraire car j'ai mis les locales en utf8. Au début c'est un peu délicat mais après on est tranquil.

Reply

Marsh Posté le 07-01-2006 à 13:42:44    

limax a écrit :

il te faut alors le convertir en  avec
$  iconv  -f utf-8 -t iso-8859-1 <  playlist.m3u >  playlist.latin1.m3u
 
je fais exactement le contraire car j'ai mis les locales en utf8. Au début c'est un peu délicat mais après on est tranquil.


 
Super,
 
Merci limax, çà fonctionne parfaitement
 
Tant que je t'ai sous la main, et comme tu sembles bien maitriser, comment tester en shell tes "locales" et accessoirement, les modifier dynamiquement
 
Merci

Reply

Marsh Posté le 07-01-2006 à 14:23:19    

C'est bon, j'arrive à faire ce que je souhaitais faire....
Bon, c'est certainement pas optimisé mais çà fonctionne...
 
Merci encore
 

Code :
  1. # Resolution probleme caracteres accentues
  2. CharSet=`file -i $PlayList | awk -F[=] ' { print $2 }'`
  3. echo Type de craactere $CharSet >> $LogFile
  4. echo >> $LogFile
  5. iconv -f $CharSet -t iso8859-1 < $PlayList > $PWD/PlayList.latin
  6. mv $PWD/PlayList.latin $PlayList

Message cité 1 fois
Message édité par mangouda le 07-01-2006 à 14:23:48
Reply

Marsh Posté le 07-01-2006 à 17:25:47    

mangouda a écrit :

C'est bon, j'arrive à faire ce que je souhaitais faire....
Bon, c'est certainement pas optimisé mais çà fonctionne...

j'ai fais comme toi un pgm.  
juste une chose attention à ne pas coder deux fois le même fichier c'est pourquoi j'ai mis un test avant.
Je ne suis pas un pro et il y a aussi des choses à critiquer, mais c'est mon pgm alors je l'utilise. J'ai passé un peu de temps pendant les vacances pour passer ma debian en utf8 (fichier tex, mysql...). les commandes file et iconv m'ont été bien utiles.

Code :
  1. #!/bin/sh
  2. if [ $# -ne 1 ]         # si le nombre de paramètres n'est pas 1
  3. then                    # affiche l'usage
  4. echo "Usage: $0 nom_du_fichier.txt"
  5. echo "Ce programme transforme un fichier de charset iso-8859-1 en utf8"
  6. exit 1
  7. fi
  8. char=`file -i $1 | sed 's/^.*charset=//'`  #récupère le charset du fichier
  9. if [ $char = iso-8859-1 ]
  10. then
  11. iconv -f iso-8859-1 -t utf-8 <  $1  >  $1.8  #conversion en utf8
  12. mv $1.8 $1
  13. echo "le fichier a été transformé en utf8"
  14. else echo "le fichier n'est pas iso-8859-1 mais "$char
  15. fi


Message édité par limax le 07-01-2006 à 20:37:18
Reply

Marsh Posté le 07-01-2006 à 21:30:15    

Merci Limax,
 
Tu as raison,  ma solution est incomplète et je vais d'ailleurs en profiter pour copier-coller-adapter ton code...
J'ai essayé malgré tout par curiosité de convertir de l'iso 8859-1 en iso 8859-1, çà n'a pas l'air de le déranger, mais bon, il suffit d'un cas particulier....
 
Merci encore pour ton aide

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed