Question

Je travaille sur l'exploration des pages d'informations et j'ai rencontré de nombreux problèmes lors de l'analyse syntaxique des pages dans Groovy. J'ai créé une solution semi-automatique qui fonctionne la plupart du temps en utilisant chardet juniversal et en scannant simplement la page pour y trouver des balises en tête, mais parfois deux de ces balises se trouvent sur une page, par exemple:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
...
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

Existe-t-il un standard sur lequel utiliser (premier, dernier, les deux ..?) ou un moyen plus simple de le faire? Merci.

Était-ce utile?

La solution

Je le ferais de manière heuristique:

  • Est-ce que tout est réellement ASCII? Si c'est le cas, peu importe ce que vous utilisez.
  • Est-il conforme à la norme UTF-8 en vigueur? Si oui, je l’utiliserais.
  • Sinon, utilisez ISO-8859-1.

Vous pouvez également consulter l'en-tête de type de contenu renvoyé par le serveur Web ...

Fondamentalement, la page est cassée, mais ce qui précède devrait donner une "meilleure estimation" raisonnable.

Autres conseils

Le comportement de ceci n'est pas défini par la spécification HTML. Vous ne pouvez pas avoir deux balises de type de contenu distinctes dans le même document. Étant donné que vous devriez probablement analyser ce document de toute façon, votre meilleur choix est de faire une supposition éclairée sur les intentions du développeur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top