繁体   English   中英

在Android中使用Base64

[英]Using Base64 in android

我正在将图像转换为字节数组然后转换为base64字符串,它可以隐蔽并完美解码,但是当我使用php将字符串保存到mysql数据库并从数据库中检索到它时,它不会解码并表示错误的base64

这是我的代码。

PHP

$sql = "insert into users(username, password, email,mob,imagetext)
                            values ('".$username."', '".$password."', '".$email."', '".$mob."', '".$imageText."') ";                            

安卓

编码

 ByteArrayOutputStream baos = new ByteArrayOutputStream();  
 Bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
 byte[] b = baos.toByteArray();
 String imageEncoded = Base64.encodeToString(b,Base64.DEFAULT);

解码

 byte[] decodedByte = Base64.decode(value, Base64.DEFAULT);                     
 b = BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length);

尝试从Base64.DEFAULT更改Base64编码选项。 您应该使用Base64.URL_SAFE,它将使用发送到您的php脚本时不需要进行URL编码的字符。 还可以考虑使用Base64.NO_WRAP,它将阻止将MIME新行添加到base 64输出中。

根据以上答案,编码:

 String imageEncoded = Base64.encodeToString(b,Base64.NO_WRAP | Base64.URL_SAFE);

解码:

 byte[] decodedByte = Base64.decode(value, Base64.NO_WRAP | Base64.URL_SAFE);       

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM