2009-08-13 7 views
0

Lors de l'analyse de certains fichiers html avec libxml, la fonction xmlParseFile() renvoie que le code contient des caractères non UTF-8 Comment puis-je modifier le jeu de caractères par défaut de la bibliothèque en ISO-8859-1? Y a-t-il un autre moyen de résoudre ce problème? PS: L'ensemble du développement est basé sur libxml et fonctionne dans la plupart des cas, donc je ne peux pas passer à une autre bibliothèque.Problème avec le caractère libxml encombant sur win32

+0

Je ne suis pas sûr de comprendre. Vous obtenez des caractères non-UTF-8, donc vous voulez passer à un jeu de caractères plus restrictif (8859)? Comment cela va-t-il aider? – ars

Répondre

1

Le codage utilisé pour les données XML doit être spécifié dans le prologue XML. Si aucun codage n'est spécifié, la spécification XML de W3 indique que UTF-8 doit être utilisé à la place. Pourquoi utilisez-vous un analyseur XML pour analyser les données HTML? libxml a un analyseur HTML séparé de son analyseur XML. Regardez htmlParseFile() et les fonctions connexes. Puisque HTML n'est pas XML, il n'y aurait pas de prologue XML pour indiquer le codage des données. HTML a une balise <meta> disponible qui peut être utilisée à l'intérieur de la balise <head> pour cela, cependant. L'analyseur HTML de libxml recherche cette balise pour déterminer l'encodage, si elle n'est pas transmise explicitement à htmlParseFile() directement.

Questions connexes