Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

encodage texte et r=c3=a9sultat htm

19 réponses
Avatar
docanski
Bonjour,

(voilà longtemps que je ne me suis plus exprimé ici ...)
Problème rencontré depuis quelques mois avec quelques pages mises à jour
dont l'affichage a changé malgré un "doctype" toujours identique.
Voici un exemple : http://armorance.free.fr/dinan5.htm et la page
d'accueil http://armorance.free.fr/ pourtant mises à jour de la même
façon et avec le même éditeur. Il s'agit de gedit sous l'OS Debian Stretch.
Mousepad refuse d'afficher les codes source sous prétexte qu'il ne
s'agit pas d'un format UTF8 valide ...
Quelqu'un peut m'expliquer ... et surtout me dépanner ?

Cordialement,
--
docanski

Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
Forum boursier : http://docanski.free.fr/boursomania/

9 réponses

1 2
Avatar
Sergio
Le 03/06/2019 à 17:20, docanski a écrit :
docanski a écrit le 03/06/2019 à 17:08 :
  'find' + 'iconv -f ISO-8859-1 -t UTF-8'

Je ne suis vraiment pas fan de la commande en ligne mais si cette commande permet de corriger la totalité d'un dossier, je suis preneur.

J'ai essayé à l'intérieur d'un dossier comportant ce genre de pages : aucune réaction, la console de commande est muette.

Ce n'est pas une commande, c'est les commandes à utiliser dans le script. Soit :
"find" (pour avoir la liste des fichiers) et "iconv -f ISO-8859-1 -t UTF-8" pour les convertir.
Je rajouterais aussi "file" pour voir en quoi ils sont encodés (ISO 8859, UTF-8....) et lancer la bonne conversion.
On en va pas t'écrire le script, faut un peu que tu y mettes du tien !
--
Serge http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org
Avatar
Otomatic
docanski écrivait :
Elle me paraît
simpliste pour remplacer l'en-tête complète de toutes les pages ou
faudra-t'il le faire pour chacune à la mimine ?

Nous en arrivons aux problèmes de conception des pages d'un site.
Chez moi — qui n'est pas forcément un modèle du genre — quelle que soit
la page, son affichage “html” commence par :
include('inc/entete.php');
ce qui fait que les entêtes php et html ne sont éventuellement à
modifier qu'une seule fois.
Et si, par exemple, pour une page particulière, je ne veux pas d'utf-8
par défaut, il suffit, avant la ligne include, de déclarer :
$charset = 'iso-8859-1';
et de même avec d'autres variables comme les css à charger, les
éventuels scripts js ou le doctype.
De plus, après “exécution” de l'include, la connexion à la base de
données est effective et les fonctions php principales sont chargées.
Mais... ça, je l'ai pensé il y a largement plus de dix ans.
--
Un ordinateur résout des problèmes que nous n'aurions pas sans lui
Technique aéronautique : http://aviatechno.net
Avatar
Olivier Miakinen
Le 03/06/2019 18:05, Sergio répondait à docanski :
Je ne suis vraiment pas fan de la commande en ligne [...]


On [ne] va pas t'écrire le script, faut un peu que tu y mettes du tien !

Bah, tu n'es guère charitable envers quelqu'un qui, bien qu'utilisant
Linux, dit qu'il n'est pas fan des commandes en ligne !
Je vais te faire ça, docanski, ça ne va pas être compliqué, et ça
pourrait te donner envie de t'intéresser un peu plus aux lignes de
commande et aux scripts.
--
Olivier Miakinen
Avatar
Olivier Miakinen
Le 03/06/2019 16:06, docanski a écrit :
AMHA, pour éviter les emmerdes, passe tout en UTF-8 avec "iconv" :
iconv -f iso-8859-1 -t utf-8 fichier-8859.html > ficher-utf8.html

Heu ... je préfère éviter : j'ai des centaines de pages dans plusieurs
sites éditées dans les mêmes conditions depuis des années. Ce que je
veux, c'est en revenir à l'encodage original.

Bon. Alors on va y aller progressivement.
Tout d'abord, pour être sûr de ne rien casser, je te conseille de
faire une copie de sauvegarde de l'arborescence de ton site.
Tu peux d'ailleurs faire une copie intégrale de l'arborescence dans
un répertoire séparé, puis faire les modifications dans la copie,
pour être sûr de ne pas toucher à l'arborescence de base tant que
tu n'as pas confiance que ça marche.
Va ensuite à la racine du site (ou de sa copie), et crée le fichier
suivant que tu peux nommer « conv » :
###################################################################
printf "Conversion de %sn" "$1"
if grep -F 'iso-8859-1' "$1" > /dev/null && ! grep -F 'utf-8' "$1" > /dev/null
then
printf "tCharset iso-8859-1, on va changer le charset vers utf-8n"
sed -i 's/iso-8859-1/utf-8/' "$1"
if grep -F 'utf-8' "$1" > /dev/null && ! grep -F 'iso-8859-1' "$1" > /dev/null
then
printf "tCharset utf-8 OK, on va convertirn"
if iconv -f iso-8859-1 -t utf-8 -o "$1" "$1"
then
printf "tConversion OKn"
else
printf "tConversion non OKn"
fi
else
printf "tRemplacement du charset non OK, on ne fait rienn"
fi
else
printf "tCharset non iso-8859-1, on ne fait rienn"
fi
###################################################################
Explications de ce script :
- les 'printf' annoncent ce qu'on est en train de faire
- la première ligne avec des 'grep' vérifie que le charset annoncé
est partout iso-8859-1 et nulle part utf-8 (sinon on ne fait rien)
- la commande 'sed' remplace le charset de iso-8859-1 vers 'utf-8'
- la deuxième ligne avec des 'grep' vérifie que ça a fonctionné
(sinon on ne change rien de plus)
- si tout est OK, la ligne avec 'iconv' transforme le charset.
Tu rendras ce script exécutable avec la commande :
chmod a+x conv
Tu peux tester le script sur l'un des fichiers, par exemple dinan5.htm
s'il est à la racine du site.
./conv dinan5.htm
Ça doit t'afficher :
Conversion de dinan5.htm
Charset iso-8859-1, on va changer le charset vers utf-8
Charset utf-8 OK, on va convertir
Conversion OK
Comme la conversion a été faite, si tu relances le script une
deuxième fois ça devrait t'afficher :
Conversion de dinan5.htm
Charset non iso-8859-1, on ne fait rien
Tu es maintenant prêt à convertir toute ton arborescence. Toujours
depuis la racine de cette arborescence (ou sa copie), tu tapes la
commande :
find . -name "*.htm" -exec ./conv {} ;
Et voilà.
--
Olivier Miakinen
Avatar
docanski
Olivier Miakinen a écrit le 03/06/2019 à 23:38 :
Je vais te faire ça, docanski, ça ne va pas être compliqué, et ça
pourrait te donner envie de t'intéresser un peu plus aux lignes de
commande et aux scripts.

C'est sympa, Olivier ! Merci ;-)
--
docanski
Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
Forum boursier : http://docanski.free.fr/boursomania/
Avatar
docanski
Otomatic a écrit le 03/06/2019 à 18:40 :
Mais... ça, je l'ai pensé il y a largement plus de dix ans.

Mais la grande majorité des pages publiées dans mes sites date d'une
vingtaine d'années. La seule correction faite par la suite était la mise
à la "norme" xml. Ce qui n'a d'ailleurs servi à rien mais c'était pour
le plaisir d'être plus pointu dans le respect des normes du W3C.
--
docanski
Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
Forum boursier : http://docanski.free.fr/boursomania/
Avatar
docanski
Olivier Miakinen a écrit le 04/06/2019 à 00:05 :
Va ensuite à la racine du site (ou de sa copie), et crée le fichier
suivant que tu peux nommer « conv » :

Avec quelle extension ?
Et voilà.

Super ! Mais je vais m'y atteler le mois prochain : je pars à l'Etranger
pour quelques semaines pendant lesquelles je serai bien occupé.
Encore merci !
--
docanski
Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
Forum boursier : http://docanski.free.fr/boursomania/
Avatar
Olivier Miakinen
Le 04/06/2019 10:26, docanski a écrit :
Va ensuite à la racine du site (ou de sa copie), et crée le fichier
suivant que tu peux nommer « conv » :

Avec quelle extension ?

Aucune. Ou celle que tu veux. Les « extensions » des noms de
fichiers sont un machin hérité de MS-DOS dans Windows, qui n'ont
strictement aucune signification pour GNU/Linux.
Donc, si ça t'amuse de l'appeler « conv.trucmuche » au lieu de
juste « conv » parce que tu as l'impression qu'un fichier doit
forcément avoir un « . » dans son nom, tu peux le faire, mais
ensuite tu devras lancer ./conv.trucmuche au lieu de ./conv ;
c'est toi qui vois, moi je préfère l'appeler juste « conv ».
Et voilà.

Super ! Mais je vais m'y atteler le mois prochain : je pars à l'Etranger
pour quelques semaines pendant lesquelles je serai bien occupé.
Encore merci !

Ok, bon voyage, et au retour n'hésite pas à poser des questions
si tu en as. Mais n'attends pas trop car sinon tu vas avoir la
flemme de le faire, et comme le disait Otomatic tu as tout intérêt
à passer en UTF-8.
--
Olivier Miakinen
Avatar
Eric Demeester
Bonjour,
Olivier Miakinen (Tue, 4 Jun 2019 11:19:55 +0200 -
fr.comp.infosystemes.www.auteurs) :
Aucune. Ou celle que tu veux. Les « extensions » des noms de
fichiers sont un machin hérité de MS-DOS dans Windows, qui n'ont
strictement aucune signification pour GNU/Linux.

Aucune signification pour le système d'exploitation on est d'accord,
mais par convention, pour mieux s'y retrouver, pour qu'un logiciel sache
a priori comment traiter tel ou tel fichier, indiquer une extension
(.php, .html, .pdf, .png, etc.) est souvent utile.
Dans le cas d'un script shell comme c'est le cas ici, j'aurais tendance
à utiliser l'extension .sh, donc « conv.sh », mais c'est un choix
purement personnel.
1 2