我試圖解碼一個簡單的Base64字符串,但無法這樣做。我目前正在使用org.apache.commons.codec.binary.Base64
包。在Java中解碼Base64字符串
我使用的測試字符串是:abcdefg
,使用PHP YWJjZGVmZw==
編碼。
這是我目前使用的代碼:
Base64 decoder = new Base64();
byte[] decodedBytes = decoder.decode("YWJjZGVmZw==");
System.out.println(new String(decodedBytes) + "\n") ;
上面的代碼不會引發錯誤,而是不輸出如預期已解碼的字符串。
好,首先,你應該總是從字節轉換爲字符時指定字符集,也許是「US-ASCII」你比如字符串('新的String(decodedBytes「 US-ASCII」 )')。 – jtahlborn 2012-07-18 15:13:47
@jtahlborn apache commons編解碼器是建立在系統默認編碼的「只是工作」,如果你沒有另外指定 – Affe 2012-07-18 15:18:35
@TomasB你貼的代碼對我來說工作正常,是完整的樣本? – Affe 2012-07-18 15:18:56