LINUX.ORG.RU

Java+xml+cp1251=♥


0

0
В общем так, есть система некая, она работает с ораклом из подь венды, соотв. в cp1251. Я работаю с тойже базой из линукса явой, получаю CLOB поле в UTF-8 там XML с русским символами, парсю нормально, как только в xml указывается кодировка (а указваается есесно cp1251) выдает крякозябры, как бы научить парсер игнорировать указываемую в XML кодировку?
★★☆
Почему сердечко не розовае?
sin_a ★★★★★
()
> как бы научить парсер игнорировать указываемую в XML кодировку?

Пропатчить. Вообще ты так круто задал вопрос, что даже телепаты не осилили определить твой парсер.
gaa ★★
()
Ответ на: комментарий от gaa
buf - строка содержащая xml в кодировке UTF-8

InputStream is = new ByteArrayInputStream(buf.getBytes());
DocumentBuilder docbuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = docbuilder.parse(is);
m_doc = doc.getDocumentElement();

что тут непонятного?
wfrr ★★☆
() автор топика
Ответ на: комментарий от wfrr
Представь себе, для Java существует много реализаций DOM парсеров. И у каждого свои атрибуты. Если бы ты потрудился и указал какую именно имплементацию ты используешь, возможно кто-нибудь знающий указал бы тебе на нужный атрибут.

Это все так... К примеру.

Ian ★★
()
Ответ на: комментарий от wfrr
> Ту которум мне выдаст вышеприведенный код, странно да?

Ты идиот(tm).
"DocumentBuilderFactory.newInstance().newDocumentBuilder();" не указывает, какой именно dom-парсер используется.
gaa ★★
()
Есть три реализации DocumentBuilder.parse() и одна из них берет не поток а InputSource. В InputSource можно указать кодировку.
Absurd ★★★
()
Ответ на: комментарий от bbk123
И тогда наверняка вдруг… перекодируется все в cp1251 из уникода, а потом обратно. Чудно.
wfrr ★★☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.