private String encryptBase64(String data){
byte[] values = null;
try{
values = data.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
String encrypted = Base64.encodeToString(values, Base64.DEFAULT);
encrypted.replace("\r\n", "");
Log.i("base64", encrypted);
return encrypted;
}
我使用此代码将一些数据编码为base64编码,但输出仍然用\ r \ n分割。并使我的JSONParser无法调用其URL。
答案 0 :(得分:2)
我有你的问题的解决方案,你必须使用URLEncoder编码这样的字符串来传递url。 示例:
private String encryptBase64(String data){
byte[] values = null;
try{
values = data.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
String encrypted = Base64.encodeToString(values, Base64.DEFAULT);
// encrypted.replace("\r\n", "");
Log.i("base64", encrypted);
// =========== use this line of code ===============
try {
url_encode_val = URLEncoder.encode(encrypted, "utf-8");
Log.e("encryptData_To url::", url_encode_val);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return url_encode_val;
}
答案 1 :(得分:0)
只需替换encrypted = encrypted.replaceAll("(\\r|\\n|\\r\\n)+", "");
而不是encrypted.replace("\n", "");
答案 2 :(得分:0)
你能做的是:
String stringAsProfImg = android.util.Base64.encodeToString(byteArrayOfImg, android.util.Base64.DEFAULT);
或者我正在做的是将位图图像转换为字节数组,然后将字节数组转换为BASE64字符串。
以下是一个例子:
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmapImage.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byteArrayOfImg = stream.toByteArray();
bitmapImage.recycle();
bitmapImage = null;
stringAsProfImg =android.util.Base64.encodeToString(byteArrayOfImg, android.util.Base64.DEFAULT);