dekowowanie base64

0

witam.
Używam parsera Xerces do wczytywania pliku XML. Dane w pliku są zakodowane w base64. Jak można w prosty sposób odkodować te dane i zmienić kodowanie na utf? Znalazłem klase na Ostermiller, ale to chyba jest za bardzo zaawansowane dla mnie.

--
Miłosz

0

ja uzywam Base64 z jdbc postgresa :P

new String(Base64.decode(text),"UTF-8");

w ten sposob dekodujesz z base64 i wrzucasz jako utf8. encode to:

String text=Base64.encodeBytes(mod_str.getBytes());

podrawiam

0

część z bibliotek których używam do XMLa posiada obsługe base64. Spróbuje z nimi coś zdziałać

0

nie wiem jak to podłączyć... nie daje rady.. może posiada ktoś jakiś dekoder domowej roboty??

0

pobierz biblioteke z jdbc.postgresql.org a potem dodaj ja do classpath i zaimportuj z niej Base64

pozdrawiam

0

import org.postgresql.util.Base64;

po drodze działa parser XMLa

public void characters(char[] ch, int start, int end) throws SAXException
{

    String s = new String(ch, start, end);
    //wyświelta zawartość
    System.out.println("znaki: " + Base64.decode(s));
}

i wywala mi takie coś:

znaki: [B@653c7e

a przy: new String(Base64.decode(s),"UTF-8"); wyskakuje
unreported exception java.io.UnsupportedEncodingException; must be caught or declared to be thrown

0

udało się :)

String a = new String(ch, start, end);
try{
String s = new String(Base64.decode(a),"UTF-8");
System.out.println("znaki: " + s);
}
catch(IOException e)
{}

tylko brakuje polskich znaków :( - SZK?O

0

[B@653c7e
wywala Ci, bo decode zwraca byte[]. Tak jak podalem wczesniej - musisz uzyc new String(decode);
Krzaki masz, bo prawdopodobnie NIE chcesz tego w utf czyli sproboj bez encodingu.

pozdrawiam

0

bez UTF-8 wywala exception... próbowałem to przenieść na biblioteke z xerces ale się nie dało, jako parsera używam xerces

--
EDIT

CP1250 załatwiło sprawe ze znaczkami :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1