Distinguer UTF-8 d'un autre encodage (was: Mauvais encodage)

Liste des GroupesRevenir à fc infosystemes 
Sujet : Distinguer UTF-8 d'un autre encodage (was: Mauvais encodage)
De : om+news (at) *nospam* miakinen.net (Olivier Miakinen)
Groupes : fr.comp.infosystemes
Date : 17. Nov 2024, 12:57:08
Autres entêtes
Organisation : There's no cabale
Message-ID : <vhclmk$2jf9$1@cabale.usenet-fr.net>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 SeaMonkey/2.49.4
Le 17/11/2024 12:28, j'écrivais :
 
Alors qu'il est possible de lire de l'UTF-8 et de l'interpréter comme si c'était
du Latin1 (plus probablement du Windows Latin1 à cause des caractères dans la
plage 80-9F), le contraire est impossible. Le moindre é écrit E9 est impossible
en UTF-8, ce qui indique que le charset, si non indiqué ou inconnu, ne peut pas
être UTF-8. Il est alors tout à fait normal que le navigateur se rabatte sur
un charset mono-octet, par exemple MacRoman sur Mac ou Latin1 partout.

Voici un exemple pour illustrer ce que je dis.


Supposons qu'une page HTML envoie les octets « 63 6F 64 C3 A9 ».

− Si l'encodage annoncé est UTF-8, le navigateur affichera « codé ».
− Si l'encodage annoncé est ISO-8859-1, ou ISO-8859-15, ou windows-1252,
le navigateur affichera « codé ».
− Mais si l'encodage annoncé est inconnu et que le navigateur doit deviner,
sachant que les deux interprétations sont valides il y a au moins deux
stratégies possibles : la stratégie prudente qui consiste à choisir
windows-1252 parce que c'est l'encodage qui a le moins de chances de
tomber sur un caractère inexistant ; la stratégie intelligente selon
laquelle si ça *peut* être de l'UTF-8 alors il y a statistiquement peu
de chances que ce soit autre chose.


Supposons maintenant qu'une page HTML envoie les octets « 63 6F 64 E9 ».

− Si l'encodage annoncé est ISO-8859-1, ou ISO-8859-15, ou windows-1252,
le navigateur affichera « codé ».
− Si l'encodage annoncé est UTF-8, le navigateur devrait afficher « cod� »
parce que, bien que le code E9 soit invalide en UTF-8, on lui a demandé
explicitement de le lire comme si c'était de l'UTF-8 ; ce n'est pas possible
alors il affiche le caractère de remplacement.
− Enfin, si l'encodage annoncé est inconnu, et même si on a configuré le
navigateur pour qu'il privilégie UTF-8 comme charset par défaut, il sait
que ça ne *peut* pas être de l'UTF-8 alors un choix raisonnable doit être
windows-1252, non pas parce que si c'est incorrect c'est forcément dû à
Windows, mais parce que cela englobe ISO-8859-1 qui est le standard favori
des charsets mono-octet.


--
Olivier Miakinen

Date Sujet#  Auteur
15 Nov 24 * Re: Mauvais encodage (was: La Corée du Nord a assuré à la Russie qu’elle allait « renforcer son arsenal nucléaire »)12Jo Engo
16 Nov 24 +- Re: Mauvais encodage1M.V.
16 Nov 24 `* Re: Mauvais encodage10Olivier Miakinen
16 Nov 24  `* Re: Mauvais encodage9Jo Engo
16 Nov 24   `* Re: Mauvais encodage8Olivier Miakinen
17 Nov 24    `* Re: Mauvais encodage7Jo Engo
17 Nov 24     +* Re: Mauvais encodage4Jo Engo
17 Nov 24     i`* Re: Mauvais encodage3Olivier Miakinen
17 Nov 24     i `* Re: Mauvais encodage2Jo Engo
17 Nov 24     i  `- Re: Mauvais encodage1Olivier Miakinen
17 Nov 24     `* Re: Mauvais encodage2Olivier Miakinen
17 Nov 24      `- Distinguer UTF-8 d'un autre encodage (was: Mauvais encodage)1Olivier Miakinen

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal