On commence par aspirer localement les pages Web à travers les URLs par wget. Si wget ne travaille pas bien, on fait appel à curl (curl ne marche pas avec les URLs comportant des lettres accentuées, et donc je la prends comme une alternative).
Si wget ou curl fait bien son boulot, je m'attaque à la détection d'encodage des pages aspirées premièrement à l'aide de la commande file -i, qui me dira si la page aspirée est en UTF-8 ou non (elle a du mal à distinguer plus loin les autres encodages).
Si la réponse est "oui", tout est bien et j'utilise la commande lynx -dump -nolist pour n'enregistrer que le contenu textuel de chaque page, avec l'encodage initial de la page, sous, par exemple, DUMP-TEXT/anglais/sens_1/ et aussi DUMP-TEXT/anglais/UTF_8/sens_1/ (copie conforme !).
Si la réponse est "non", je vérifie d'abord que l'indication d'encodage est présente dans le code source de la page aspirée. Puis j'utilise la commande egrep pour extraire cet encodage. Je vérifie ensuite que cet encodage peut être traiter par la commande iconv (important). Si c'est le cas, j'enregistre le contenu textuel en codage initial de la page sous, par exemple, DUMP-TEXT/anglais/sens_1 (mais pas DUMP-TEXT/anglais/UTF_8/sens_1/ !)
Voilà à quoi sert-t-il d'appliquer iconv : convertir l'encodage initial de la page en UTF-8. Si l'encodage initial n'est pas connu par iconv, la conversion n'aura pas lieu.
S'il n'y a pas d'indication d'encodage dans le code source de la page, on n'enregistre aucun dump.<:p>
Plus haut, si wget et curl refusent de travailler toutes les deux, on arrête cette boucle-ci et procède à celle-là du prochain URL.