2016-03-17 25 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));