Base64编码结果导致了很多空格(我无法识别的空白字符)

时间:2015-01-29 09:56:02

标签: android encoding base64

我使用这个简单的代码在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 =”实际上是最后一个带有空格的String:

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

知道我做错了什么???

1 个答案:

答案 0 :(得分:4)

这可能是一个编码问题,因为如果我在调用getBytes中删除 UTF-8 字符串,我会得到很好的结果:

byte[] data = "ab:ab".getBytes();

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

您可能还想使用NO_WRAP标志来获取一行中的所有内容或删除生成的字符串:

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