Bonsoir
Je récupère avec wget un fichier html, encodé en charset=ISO-8859-1, dont les voyelles accentuées sont de la forme "é" pour le é par exemple.

Comment transformer ces voyelles html en voyelles accentuées simple.

J'ai essayé avec iconv, mais cela ne fonctionne pas...
J'ai essayé avec iconv, mais cela ne fonctionne pas...
quelle commande ?

message d'erreur ?
J'ai un fichier index.htlm, avec une ligne de cette forme:
<li><b>Visibilit&eacute;:</b> <span style="color:white;">13.2 %</span></li>

ce fichier est encodé en :
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">

J'applique la commande:
iconv -f latin1 -t utf8 index.html > index1.html
Cela me crée bien le fichier index1.html, sans messages d'erreurs, mais les deux fichiers sont identiques.
Les symboles du genre &eacute; sont justement faits pour être identiques dans tous les encodages, donc il est normal que les deux fichiers soient identiques. La meilleure solution est de faire un bon vieux chercher/remplacer des familles avec ton éditeur de texte préféré si tu n’as qu’un seul fichier, ou de faire un script avec sed si tu en as plusieurs. Attention toutefois à mettre les accents dans le bon encodage.
Tu as la commande recode pour ça ; je l'avais déjà mentionné dans un précédent post, pour une conversion UTF8 → ASCII :
http://forums.fedora-fr.org/viewtopic.php?id=49948
La conversion inverse est aussi prise en charge :
$ echo "Un test : &Agrave; &ecirc; &icirc; &oelig; &ugrave; &euro; &hearts;" | recode h..utf8
Un test : À ê î œ ù € ♥
Impeccable, comme toujours Pikachu.
Merci

Je passe le post en résolu
Du temps ou le site LilyPond était en html pur, j'avais récupéré, je ne sais plus où, une macro emacs impécable (de Sylvie Ruette).
  • J'ouvre la fichier en html
    C-x C-f toto.html
  • La macro infernale
    M-x html-accents
  • Je visionne nettement moins de caractères, et c'est plus « lisible » le temps de rédiger, corriger...
  • Je remets en html
    M-x accents-html
  • Je sauvegarde mon boulot
    C-x C-s toto.html
En voici le code :
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; accents-html : change les caracteres accentues en accents html
;; sans demander confirmation
;; les majuscules sont respectees
;;
;; html-accents : change les accents html en caracteres accentues
;; sans demander confirmation
;; les majuscules sont respectees

(defun accents-html ()
  (interactive)
  "change les caracteres accentues en accents html"
  (save-excursion
  (beginning-of-buffer)
  (replace-string "\Á" "&Aacute;")
  (beginning-of-buffer)
  (replace-string "\À" "&Agrave;")
  (beginning-of-buffer)
  (replace-string "\Â" "&Acirc;")
  (beginning-of-buffer)
  (replace-string "\Ä" "&Auml;")
  (beginning-of-buffer)
  (replace-string "\É" "&Eacute;")
  (beginning-of-buffer)
  (replace-string "È" "&Egrave;")
  (beginning-of-buffer)
  (replace-string "\Ê" "&Ecirc;")
  (beginning-of-buffer)
  (replace-string "\Ë" "&Euml;")
  (beginning-of-buffer)
  (replace-string "\Í" "&Iacute;")
  (beginning-of-buffer)
  (replace-string "\Ì" "&Igrave;")
  (beginning-of-buffer)
  (replace-string "\Î" "&Icirc;")
  (beginning-of-buffer)
  (replace-string "\Ï" "&Iuml;")
  (beginning-of-buffer)
  (replace-string "\Ó" "&Oacute;")
  (beginning-of-buffer)
  (replace-string "\Ò" "&Ograve;")
  (beginning-of-buffer)
  (replace-string "\Ô" "&Ocirc;")
  (beginning-of-buffer)
  (replace-string "\Ö" "&Ouml;")
  (beginning-of-buffer)
  (replace-string "\Ú" "&Uacute")
  (beginning-of-buffer)
  (replace-string "\Ù" "&Ugrave;")
  (beginning-of-buffer)
  (replace-string "\Û" "&Ucirc;")
  (beginning-of-buffer)
  (replace-string "\Ü" "&Uuml;")
  (beginning-of-buffer)
  (replace-string "\Ç" "&Ccedil;")
  (beginning-of-buffer)
  (replace-string "\á" "&aacute;")
  (beginning-of-buffer)
  (replace-string "\à" "&agrave;")
  (beginning-of-buffer)
  (replace-string "\â" "&acirc;")
  (beginning-of-buffer)
  (replace-string "\ä" "&auml;")
  (beginning-of-buffer)
  (replace-string "\é" "&eacute;")
  (beginning-of-buffer)
  (replace-string "\è" "&egrave;")
  (beginning-of-buffer)
  (replace-string "\ê" "&ecirc;")
  (beginning-of-buffer)
  (replace-string "\ë" "&euml;")
  (beginning-of-buffer)
  (replace-string "\í" "&iacute;")
  (beginning-of-buffer)
  (replace-string "\ì" "&igrave;")
  (beginning-of-buffer)
  (replace-string "\î" "&icirc;")
  (beginning-of-buffer)
  (replace-string "\ï" "&iuml;")
  (beginning-of-buffer)
  (replace-string "\ó" "&oacute;")
  (beginning-of-buffer)
  (replace-string "\ò" "&ograve;")
  (beginning-of-buffer)
  (replace-string "\ô" "&ocirc;")
  (beginning-of-buffer)
  (replace-string "\ö" "&ouml;")
  (beginning-of-buffer)
  (replace-string "\ú" "&uacute")
  (beginning-of-buffer)
  (replace-string "\ù" "&ugrave;")
  (beginning-of-buffer)
  (replace-string "\û" "&ucirc;")
  (beginning-of-buffer)
  (replace-string "\ü" "&uuml;")
  (beginning-of-buffer)
  (replace-string "\ç" "&ccedil;")
))

(defun html-accents ()
  (interactive)
  "change les accents html en caracteres accentues"
  (save-excursion
  (beginning-of-buffer)
  (replace-string "&Aacute;" "\Á")
  (beginning-of-buffer)
  (replace-string "&Agrave;" "\À")
  (beginning-of-buffer)
  (replace-string "&Acirc;" "\Â")
  (beginning-of-buffer)
  (replace-string "&Auml;" "\Ä")
  (beginning-of-buffer)
  (replace-string "&Eacute;" "\É")
  (beginning-of-buffer)
  (replace-string "&Egrave;" "\È")
  (beginning-of-buffer)
  (replace-string "&Ecirc;" "\Ê")
  (beginning-of-buffer)
  (replace-string "&Euml;" "\Ë")
  (beginning-of-buffer)
  (replace-string "&Iacute;" "\Í")
  (beginning-of-buffer)
  (replace-string "&Igrave;" "\Ì")
  (beginning-of-buffer)
  (replace-string "&Icirc;" "\Î")
  (beginning-of-buffer)
  (replace-string "&Iuml;" "\Ï")
  (beginning-of-buffer)
  (replace-string "&Oacute;" "\Ó")
  (beginning-of-buffer)
  (replace-string "&Ograve;" "\Ò")
  (beginning-of-buffer)
  (replace-string "&Ocirc;" "\Ô")
  (beginning-of-buffer)
  (replace-string "&Ouml;" "\Ö")
  (beginning-of-buffer)
  (replace-string "&Uacute;" "\Ú")
  (beginning-of-buffer)
  (replace-string "&Ugrave;" "\Ù")
  (beginning-of-buffer)
  (replace-string "&Ucirc;" "\Û")
  (beginning-of-buffer)
  (replace-string "&Uuml;" "\Ü")
  (beginning-of-buffer)
  (replace-string "&Ccedil;" "\Ç")
  (beginning-of-buffer)
  (replace-string "&aacute;" "\á")
  (beginning-of-buffer)
  (replace-string "&agrave;" "\à")
  (beginning-of-buffer)
  (replace-string "&acirc;" "\â")
  (beginning-of-buffer)
  (replace-string "&auml;" "\ä")
  (beginning-of-buffer)
  (replace-string "&eacute;" "\é")
  (beginning-of-buffer)
  (replace-string "&egrave;" "\è")
  (beginning-of-buffer)
  (replace-string "&ecirc;" "\ê")
  (beginning-of-buffer)
  (replace-string "&euml;" "\ë")
  (beginning-of-buffer)
  (replace-string "&iacute;" "\í")
  (beginning-of-buffer)
  (replace-string "&igrave;" "\ì")
  (beginning-of-buffer)
  (replace-string "&icirc;" "\î")
  (beginning-of-buffer)
  (replace-string "&iuml;" "\ï")
  (beginning-of-buffer)
  (replace-string "&oacute;" "\ó")
  (beginning-of-buffer)
  (replace-string "&ograve;" "\ò")
  (beginning-of-buffer)
  (replace-string "&ocirc;" "\ô")
  (beginning-of-buffer)
  (replace-string "&ouml;" "\ö")
  (beginning-of-buffer)
  (replace-string "&uacute;" "\ú")
  (beginning-of-buffer)
  (replace-string "&ugrave;" "\ù")
  (beginning-of-buffer)
  (replace-string "&ucirc;" "\û")
  (beginning-of-buffer)
  (replace-string "&uuml;" "\ü")
  (beginning-of-buffer)
  (replace-string "&ccedil;" "\ç")
))
Intéressant comme méthode, mais celle de Pikachu est beaucoup plus simple, il n'y a qu'à installer le paquet recode.