Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Base64 String to byte[] in java [duplicate]

I am trying to convert base64 String to byte array but it is throwing following error

java.lang.IllegalArgumentException: Illegal base64 character 3a

I have tried following options 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);*/` 
like image 350
Ninad Kulkarni Avatar asked Jan 30 '17 11:01

Ninad Kulkarni


1 Answers

You can use java.util.Base64 package to decode the String to byte[]. Below code which I have used for encode and decode.

For 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();         }     } 

For 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();         }     } } 
like image 96
Ravi Koradia Avatar answered Sep 25 '22 09:09

Ravi Koradia