2017-03-17 73 views
0

我有一个字符串longblobimage,这是取自mysql数据库如何将其转换为base64字符串,以及如何知道它是否已编码的图像?如何在Android中将图像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; 
} 

到目前为止,这并不工作,我由于某种原因

+0

什么不适合它?你是否收到错误,以后没有显示图像等? – user681574

+0

我发现java的base64编码的字符串以“/ 9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB”开头,而在PHP方面它的不同,我想我会编码图像,如果它不是在base64 –

回答

0

你在导入去

Base64.encodeToString接入(string.getBytes( ),Base64.DEFAULT)

我想弄清楚这是如何工作的,但Base64甚至没有记录的静态方法,需要一个编码类型。

您可以将字符串转换为base64 byteArray,这就是您可能将图像存储到文件的方式。

Java中的字符串是UTF-16编码的,因此将Base64编码的byteArray存储回String中没有意义,因为它会再次更改编码。

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

相关问题