[英]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.