2011-08-19 3 views
0

J'ai un gestionnaire XML utilisé de la façon suivante:Blackberry UTF-8 Problème

SAXParserFactory.newInstance().newSAXParser().parse(new ByteArrayInputStream(response.getBytes()), myXMLHandler); 

Ma plate-forme cible est le 4,5 JRE afin de couvrir la majorité du marché. Pour une raison quelconque, cet analyseur fonctionne sur 4.5 mais ne fonctionne sur aucune version ultérieure du système d'exploitation. Je reçois une exception UTF-8 malformée générée par l'analyseur.

Des idées sur ce qui causerait le comportement différent? Y at-il des caractères qui ne sont pas casher avec les versions ultérieures du Blackberry JRE?

Répondre

1

Votre xml est probablement en UTF-8 alors que vous avez response.getBytes(). String.getBytes() renvoie des octets pour le codage OS par défaut qui est ISO-8859-1 sur BB. Essayez donc d'obtenir des octets UTF-8 en appelant le response.getBytes("UTF-8").

Je crois que ce n'est pas lié à la version du système d'exploitation, mais à un contenu réel dans la réponse. Si la réponse contient uniquement des données ASCII, alors votre code passera toujours OK (car ces caractères ASCII ont les mêmes positions dans la table UTF-8). Mais si la réponse a des caractères ASCII, alors l'analyseur peut échouer.