[Ruby] détection encodage de fichiers html

Le
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
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
pere.noel
Le #472515
Une bévue
<>


il fallait lire :


;-)
--
une bévue

Publicité
Poster une réponse
Anonyme