如何从 Base64 编码的字符串中删除换行符?

How to remove line break from Base64 encoded string?

我试图删除换行符,但使用下面的代码我无法继续使用 replace() 方法将其删除。

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;
}

如上面的代码,很明显我试图删除换行符但代码未能做到。如何去掉换行符?

截图:

只需替换 encrypted = encrypted.replaceAll("(\r|\n|\r\n)+", ""); 而不是 encrypted.replace("\n", "");

您可以做的是:

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);

我有你的问题的解决方案,你必须使用 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;
}