Howto laisser l'analyseur SAX déterminer l'encodage à partir de la déclaration xml?

Je suis en train d'analyser des fichiers xml à partir de différentes sources (sur lequel j'ai peu de contrôle). La plupart d'entre eux sont encodés en UTF-8 et ne cause pas de problèmes à l'aide de l'extrait de code suivant:

SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
FeedHandler handler = new FeedHandler();
InputSource is = new InputSource(getInputStream());
parser.parse(is, handler);

Depuis SAX valeur par défaut est UTF-8, ce qui est correct. Cependant, certains documents déclarer:

<?xml version="1.0" encoding="ISO-8859-1"?>

Même si l'ISO-8859-1 est déclaré SAX encore de la valeur par défaut est UTF-8.
Seulement si j'ajoute:

is.setEncoding("ISO-8859-1");

Sera SAX utiliser l'encodage correct.

Comment puis-je laisser SAX détecter automatiquement l'encodage correct de la déclaration xml, sans moi, plus précisément le définir? J'ai besoin de cela parce que je ne sais pas à quoi l'encodage du fichier sera.

Merci d'avance,
Allan

InformationsquelleAutor Allan | 2010-08-14