2017-03-17 4 views
0

私は、mysqlデータベースから取得したString longblobimageを持っています。これをbase64 Stringに変換するにはどうすればいいですか?ここイメージをLONGBLOBをデータベースからBase64でエンコードされた文字列にアンドロイドで変換するには?

は私の試みです:

public String checkForEncode(String string) { 
    String regex = "^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$"; 
    if(string.matches(regex)){ 
     System.out.println("ERROR33:it's a Base64"); 
     return string; 
    } 
    String encodedImage = Base64.encodeToString(string.getBytes(), Base64.DEFAULT); 
    return encodedImage; 
} 

これまでのところ、このdoesntの仕事は私にいくつかの理由で

+0

何が問題なのですか?エラーが発生していますか、後で画像が表示されないなどですか? – user681574

+0

私はJavaのbase64でエンコードされた文字列が "/ 9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEQQQBAQEBAQEBAQEBAQEB"で始まることを発見しましたが、php側ではそれとは異なり、私はbase64にない場合は画像をエンコードすると考えていました –

答えて

0

あなたは

Base64.encodeToString(するString.getBytes(へのアクセスを得るために何をインポートします)、Base64.DEFAULT)

これはどのように動作しているのか理解しようとしていますが、Base64にはエンコードされた文書化された静的メソッドタイプ。

文字列をbase64のbyteArrayに変換できます。これは、画像をファイルに保存する方法です。

JavaのStringはUTF-16でエンコードされているため、Base64でエンコードされたbyteArrayをStringに格納することは、エンコードを変更するときに意味をなさないものです。

byte [] encoded = Base64.encodeBase64(string.getBytes());

関連する問題