Permalänk
Medlem

Base64 decode?

Hej,

Jag använder de här två metoderna för att skapa en Base64-encoded String utifrån en vanlig String. First gör jag den till en byte[] och sen till Base64-kodad.

String originalText = "abc123"; String base64Text = toBase64(originalText); private String toBase64(String s) throws SystemException { return new BASE64Encoder().encode(toByteArray(s)); } private byte[] toByteArray(String s) throws SystemException { try { return s.getBytes("UTF-8"); } catch (UnsupportedEncodingException e) { SystemException se = new SystemException(); throw se; } }

Mitt problem är att jag senare behöver gå andra hållet, från den Base64-kodade texten (YWJjMTIz) tillbaka till ursprungstexten (abc123). Är det någon som vet om och isf hur det är möjligt?

Permalänk

Kan inte javas klassbiblotek, men det här kanske kan hjälpa?

Visa signatur

Python-IRC på svenska: #python.se

Permalänk
Medlem

Tror mitt problem är att både encode() och decode() tar och ger en byte[]. Så min fråga bör ändras till om det finns möjlighet att göra en String till byte[] och sen gå tillbaka från byte[] till exakt samma String?

String text = "abc123"; byte[] byteArray = text.getBytes();

Finns det någon metod som gör om byte[] byteArray tillbaka till String text ("abc123")?

Permalänk
Medlem

Vet inte om detta hjälper men i C# när man omvandlat en string till en char[] så får man helt enkelt skapa en ny string med string-konstruktorn:

string s1 = "FooBar"; Char[] chars = s1.ToCharArray(); chars[0] = Char.ToLower(chars[0]); string s2 = new string(chars); // s2 should now be "fooBar"

string-konstruktorn i Java kanske kan ta en byte[] som parameter?

Edit
string-konstruktorn i Java kan ta en byte[] som parameter.
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html...

Visa signatur

10 RTFM
20 RTFAQ
30 STFW