我试图解码一个简单的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