OVH Cloud OVH Cloud

SAX et encodage

4 réponses
Avatar
Fabien
Bonjour,

je suis en train de faire un tout petit programme qui fait un parsing
d'un fichier XML se trouvant sur le web (j'utilise Xerces).

Mon problème c'est que le fichier en question est mal foutu et de
déclare par l'encodage du texte. SAX considère donc que c'est de
l'UTF-8, mais ça n'en est pas et il me renvoie donc une erreur dès
qu'il rencontre un caractère spécial.

Y a-t-il un moyen de lui indiquer quel encodage utiliser ?

Merci d'avance.

4 réponses

Avatar
Anthony Goubard
Bonjour,

Un petit tour vite fait dans l'API et je vois dans
http://www.saxproject.org/apidoc/org/xml/sax/InputSource.html
une méthode setEncoding()

Mais à mon avis le problème vient lorsques tu passe l'InputStream ou le
Reader.Regarde aussi à la classe InputStreamReader.

Anthony
Fabien wrote:

Bonjour,

je suis en train de faire un tout petit programme qui fait un parsing
d'un fichier XML se trouvant sur le web (j'utilise Xerces).

Mon problème c'est que le fichier en question est mal foutu et de
déclare par l'encodage du texte. SAX considère donc que c'est de
l'UTF-8, mais ça n'en est pas et il me renvoie donc une erreur dès
qu'il rencontre un caractère spécial.

Y a-t-il un moyen de lui indiquer quel encodage utiliser ?

Merci d'avance.


Avatar
Fabien
Merci beaucoup pour cette réponse.

Je vais regarder tout ça mais ça m'a l'air d'être une bonne piste.

Merci.

In article (Dans l'article) <4hsvc.2863$,
Anthony Goubard wrote (écrivait) :

Bonjour,

Un petit tour vite fait dans l'API et je vois dans
http://www.saxproject.org/apidoc/org/xml/sax/InputSource.html
une méthode setEncoding()

Mais à mon avis le problème vient lorsques tu passe l'InputStream ou le
Reader.Regarde aussi à la classe InputStreamReader.

Anthony
Fabien wrote:

Bonjour,

je suis en train de faire un tout petit programme qui fait un parsing
d'un fichier XML se trouvant sur le web (j'utilise Xerces).

Mon problème c'est que le fichier en question est mal foutu et de
déclare par l'encodage du texte. SAX considère donc que c'est de
l'UTF-8, mais ça n'en est pas et il me renvoie donc une erreur dès
qu'il rencontre un caractère spécial.

Y a-t-il un moyen de lui indiquer quel encodage utiliser ?

Merci d'avance.




Avatar
Anthony Goubard
Sinon un fichier XML commence toujours par
<?xml version="1.0" encoding="XXX"?>
où XXX peut être US-ASCII ISO-8859-1 etc...
Peut-être il y a un problème avec le fichier lui-même?

Anthony
Fabien wrote:
Merci beaucoup pour cette réponse.

Je vais regarder tout ça mais ça m'a l'air d'être une bonne piste.

Merci.

In article (Dans l'article) <4hsvc.2863$,
Anthony Goubard wrote (écrivait) :




Avatar
Fabien
Justement, le fichier en question n'a pas de déclaration d'encoding.

D'où mon problème.


In article (Dans l'article) <1kMvc.4620$,
Anthony Goubard wrote (écrivait) :

Sinon un fichier XML commence toujours par
<?xml version="1.0" encoding="XXX"?>
où XXX peut être US-ASCII ISO-8859-1 etc...
Peut-être il y a un problème avec le fichier lui-même?

Anthony
Fabien wrote:
Merci beaucoup pour cette réponse.

Je vais regarder tout ça mais ça m'a l'air d'être une bonne piste.

Merci.

In article (Dans l'article) <4hsvc.2863$,
Anthony Goubard wrote (écrivait) :