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

[Ruby] détection encodage de fichiers html

1 réponse
Avatar
pere.noel
j'ai besoin de détecter l'encodage de fichiers html...
de fichier html off-line, pas question d'avoir les headers HTTP.
pas facile, j'ai quatre méthodes :

- 1 - détecter le charset dans la balise meta content type si elle
existe
- 2 - utiliser nkf #guess1
- 3 - utiliser nkf #guess2
- 4 - vérifier avec SubEthaEdit et/ou Firefox l'encodage effectif.

bon, le résultat des courses :
- en général SubEthaEdit et Firefox sont d'accord

- pour nkf #guess1 et nkf #guess2 je n'ai pas trouvé de table donnant
l'encodage en fonction de l'entier retourné, une ref est donnée : c'est
un livre ?

- qqfois l'encodage donné par la balise meta est FAUX cf le site
RubyCocoa <> qui donne ISO-8859-1 alors que les pages sont en UTF-8 MAIS
guess1 et guess2 ne donnent pas le même résultat sur ces pages (guess2
donne qq pages en SIJS d'autres en UTF-8 quand guess1 ne voit QUE de
l'UTF-8)

- d'autres fois c'est la balise meta qui est bonne est guess1 (donne
UTF-8 pour ISO-8859-1) FAUX...

bref nue situation indém@&dable ;-)

un peu de lumière ???

j'utilise guess1 et guess2 simplement :
val=NKF.guess1(string)
avec :
string=<tout le contenu du fichier html>
obtenu par :
string=""
File.open("#{file}").each { |line|
string << line
}
en espérant qu'il n'y a pas une conversion sournoise dans les trois
lignes juste au-dessus...
--
une bévue

1 réponse

Avatar
pere.noel
Une bévue wrote:

<>


il fallait lire :

<>=<http://www.rubycocoa.com/the-rubification-of-rtw&gt;

;-)
--
une bévue