Android中的Base64解码字符串

时间:2017-06-19 12:52:32

标签: android base64

我正在尝试使用android.util.Base64对String进行编码和解码,但它会产生错误的base-64错误。

String str = "EOKF36syRBtB11VgyChkNjc1HxRrajT7XXaxZfnVzPkV57K3b9yqkS284Ovb9uWzXgGeY2bxA3IySGfdOHiPAQ==F/v6hcTiU1sd975XHfDsz8o0rboujM77n7KwRMidobOLbo5ghUT/IFcxElUc8CirdZxaCaS3zs/CfRKRsXwbFNYd";
Base64.decode(str,Base64.NO_WRAP);

我正在尝试使用以下标志解码字符串(NO_CLOSE,DEFAULT,NO_PADDING,URL_SAFE),但它会产生相同的错误。

请帮我解决问题。

3 个答案:

答案 0 :(得分:4)

我使用下面的方法解码base64字符串,它工作正常。

private String decodeBase64(String coded){
    byte[] valueDecoded= new byte[0];
    try {
        valueDecoded = Base64.decode(coded.getBytes("UTF-8"), Base64.DEFAULT);
    } catch (UnsupportedEncodingException e) {
    }
    return new String(valueDecoded);
}

答案 1 :(得分:2)

您的编码字符串似乎已损坏。尝试解码您在变量' str'中定义的字符串。使用在线base64解码器。结果是文本乱码。

答案 2 :(得分:1)

放置正确的base64字符串并尝试如下

    String img = "your_base_64_string";
    byte[] decodedString = Base64.decode(img, Base64.DEFAULT);
    Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);