我使用这个简单的代码在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=
*
知道我做错了什么???
答案 0 :(得分:4)
这可能是一个编码问题,因为如果我在调用getBytes
中删除 UTF-8 字符串,我会得到很好的结果:
byte[] data = "ab:ab".getBytes();
在Android上,默认字符集是UTF-8,我想知道为什么它在这个例子中没有按预期工作。
您可能还想使用NO_WRAP
标志来获取一行中的所有内容或删除生成的字符串:
base64 = Base64.encodeToString(data, Base64.NO_WRAP);