2015-03-18 2 views
3

Проблема в том, что есть некоторые файлы xml, которые не имеют информации заголовка, доступной в xml. При анализе xml-файла vtd-xml использует utf-8 по умолчанию и генерирует исключение, которое не может анализировать документ. (кодировка xml равна 8859-2, но для этого нет информации заголовка.)Как установить кодировку для vtd-xml?

Я попытался использовать -Dfile.encoding = iso-8859-2, но это не поможет.

Вопрос: Как я могу установить (по умолчанию) кодировку для xml-файла?

+0

Привет, Xml spec говорит, что кодировка является обязательной декларацией. Без него XML-документ не является допустимым xml. Самое быстрое исправление заключается в том, чтобы добавить заголовок объявления XML, чтобы указать кодировку ... –

+0

Вы не правы. –

+0

обязательно, за исключением utf-8. –

ответ

0

Для однобайтовой кодировки, отличной от ut8, спецификация XML задает объявление кодировки. В противном случае это недействительный документ XML.

+1

ОК Недействительно, но может быть проанализировано. Единственная недостающая вещь для этого - недостающая кодировка. Я не хочу делать уродливые обходные пути, такие как добавление недостающего заголовка в xml. Это может быть очень медленное время, требующее много времени, если вы попытаетесь создать файл размером 4 gb xml. Vtd-xml должен предоставить API-метод для установки отсутствующей кодировки, –

+0

Я считаю, что добавление отсутствующего заголовка является правильным способом и самым простым способом исправить это ... добавление параметров для установки кодировки не является строгим подходом. Не имея объявления кодирования, вы неявно устанавливаете его в кодировку UTF-8. Что если у вас есть сотрудник, который должен взять на себя вашу работу и должен потратить дополнительные часы, чтобы узнать это, но он не знает кодировки. .. проще ли вам просто исправить проблему навсегда? –

+1

Когда вам нужно обработать данные, которые являются xml, но не имеют заголовка, не полезно знать, что он не действителен на 100%. Он все еще должен быть обработан, и даже если я знаю кодировку, я не могу установить его для api явно. –