Base64 编码导致最后有很多空格(我无法识别的空白字符)

Base64 encoding result in a lot of whitespaces (blank char that I cannot identify) at the end

我正在使用这个简单的代码在 Base64 中编码 "ab:ab":

    try {
        byte[] data = "ab:ab".getBytes("UTF-8");
        String base64 = Base64.encodeToString(data, Base64.DEFAULT);
        Log.e("CVE","*"+base64+"*");
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }

但结果,应该是 "YWI6YWI=" 实际上是相同的字符串,末尾有空格:

01-29 10:51:18.813  21789-21863/com.myapp.com E/CVE﹕
*YWI6YWJmZHNmZmRzZmRzc2RmZHM=
    *

知道我做错了什么吗???

这可能是一个编码问题,因为如果我在对 getBytes:

的调用中删除 UTF-8 字符串,我会得到很好的结果
byte[] data = "ab:ab".getBytes();

在 Android 上,默认字符集是 UTF-8,我想知道为什么它在这个例子中没有按预期工作。

您可能还想使用 NO_WRAP 标志将所有内容放在一行中或删除结果字符串:

base64 = Base64.encodeToString(data, Base64.NO_WRAP);