web-dev-qa-db-fra.com

Base64 Chaîne à octet [] dans java

J'essaie de convertir base64 String en tableau d'octets, mais l'erreur suivante est générée.

Java.lang.IllegalArgumentException: caractère 3a de base64 illégal

J'ai essayé les options suivantes: userimage is base64 string

byte[] img1 = org.Apache.commons.codec.binary.Base64.decodeBase64(userimage);`

/* byte[] decodedString = Base64.getDecoder().decode(encodedString.getBytes(UTF_8));*/
/* byte[] byteimage =Base64.getDecoder().decode( userimage );*/
/* byte[] byteimage =  Base64.getMimeDecoder().decode(userimage);*/`
16
Ninad Kulkarni

Vous pouvez utiliser Java.util.Base64 package pour décoder la chaîne en byte[]. Ci-dessous le code que j'ai utilisé pour encoder et décoder.

Pour Java 8:

import Java.io.UnsupportedEncodingException;
import Java.util.Base64;

public class Example {

    public static void main(String[] args) {
        try {
            byte[] name = Base64.getEncoder().encode("hello World".getBytes());
            byte[] decodedString = Base64.getDecoder().decode(new String(name).getBytes("UTF-8"));
            System.out.println(new String(decodedString));
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

Pour Java 6:

import Java.io.UnsupportedEncodingException;
import org.Apache.commons.codec.binary.Base64;

public class Main {

    public static void main(String[] args) {
        try {
            byte[] name = Base64.encodeBase64("hello World".getBytes());
            byte[] decodedString = Base64.decodeBase64(new String(name).getBytes("UTF-8"));
            System.out.println(new String(decodedString));
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
27
Ravi Koradia