2016-03-17 23 views
2

我在webservice响应中获取了一个base64encoded xml数据,我想用Java解码它。 我试图org.apache.commons.codec.binary.Base64;如何在java中解码base64

byte bytesEncoded[] = base64encodedStringfromWebservice.getBytes(); 
// Decrypt data on other side, by processing encoded data 
byte[] valueDecoded= Base64.decodeBase64(bytesEncoded); 
System.out.println("Decoded value is " + new String(valueDecoded)); 

但还是像一些字符(<,/>)都没有得到正确解码。

请建议如何正确解码?

回答

0

尝试指定您正在使用的字符集。例如,UTF-8,正如你可以在这里看到:Decoding a Base64 string in Java

byte[] valueDecoded= Base64.decodeBase64(bytesEncoded); 
System.out.println("Decoded value is " + new String(valueDecoded, "UTF-8")); 
2

Stringis platform specificgetBytes方法。您需要指定编码,稍后使用相同的编码来解码字符串。你可以使用UTF8。

您还需要在做相反的顺序:字符串 - >的base64 - >原料UTF8字节 - >的base64 - >字符串

// ENCODE data 
byte bytesEncoded[] = base64encodedStringfromWebservice.getBytes("UTF8"); 

// DECODE data on other side, by processing encoded data 
String base64encodedStringfromWebservice = new String(bytesEncoded, "UTF8"); 
byte[] valueDecoded = Base64.decodeBase64(base64encodedStringfromWebservice); 
System.out.println("Decoded value is " + new String(valueDecoded));