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 ★★☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.