Blackberry UTF-8 Проблема - PullRequest
       9

Blackberry UTF-8 Проблема

0 голосов
/ 19 августа 2011

У меня есть обработчик XML, который используется следующим образом:

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

Моя целевая платформа - 4,5 JRE, чтобы покрыть большую часть рынка.По какой-то причине этот синтаксический анализатор работает на 4.5, но не работает на любой более поздней версии ОС.Я получаю исключение Malformed UTF-8, сгенерированное синтаксическим анализатором.

Есть какие-либо идеи относительно того, что может вызвать другое поведение?Есть ли персонажи, которые не кошерны в более поздних версиях Blackberry JRE?

1 Ответ

1 голос
/ 20 августа 2011

Скорее всего, ваш XML находится в UTF-8, а у вас есть response.getBytes(). String.getBytes () возвращает байты для кодировки ОС по умолчанию, которая соответствует ISO-8859-1 на BB. Поэтому попробуйте получить байты UTF-8, вызвав response.getBytes("UTF-8").

Я считаю, что это связано не с версией ОС, а с фактическим содержанием в ответе. Если ответ содержит только данные ASCII, то ваш код все равно будет проходить ОК (потому что эти символы ASCII имеют одинаковые позиции в таблице UTF-8). Но если в ответе есть несколько символов, отличных от ASCII, то парсер может завершиться неудачей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...