SAX-парсер взлома - - PullRequest
       25

SAX-парсер взлома -

2 голосов
/ 06 ноября 2008

Я реализовал парсер SAX в Java, расширив обработчик по умолчанию. XML имеет - в своем содержании. Когда он попадает в этого персонажа, он ломается. Я печатаю массив символов в символьном методе, и он просто заканчивается символом перед ñ. После этого анализатор останавливается, так как никакие другие методы не вызываются, хотя контента еще намного больше т.е. метод endElement никогда не вызывается снова. Кто-нибудь сталкивался с этой проблемой раньше или есть какие-либо предложения о том, как ее решить?

Ответы [ 3 ]

4 голосов
/ 06 ноября 2008

Какая кодировка в файле? Убедитесь, что кодировка файла соответствует этому. Ваш парсер может по умолчанию использовать ascii или ISO-8859-1. Вы можете установить кодировку так:

<?xml version="1.0" encoding="UTF-8"?>

UTF-8 покроет этот символ, просто убедитесь, что это именно тот файл, в котором он находится.

3 голосов
/ 06 ноября 2008

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

0 голосов
/ 30 декабря 2015

Я столкнулся с этой проблемой. Поток XML, который вы передаете, должен быть прочитан как ascii, закодирован в кодировке ascii в UTF-8 или заменен на поток символов, и все будет хорошо.

что-то вроде этого поможет вам:

File F = new File(C://Location);
BuffeReader Readfile = new BufferReader(F);
InputSource Encode = new InputSource(Readfile);
Encode.setEncoding("UTF-8");
...