我需要将base64编码的数据作为字符串值传递给xml。我注意到下面的代码打印不同的字符串表示。哪一个是正确的,为什么?
String example = "Hello universe!";
byte[] base64data = Base64.encodeBase64(example.getBytes());
System.out.println(new String(base64data));
System.out.println(DatatypeConverter.printBase64Binary(base64data));
System.out.println(new String(Base64.decodeBase64(base64data), "UTF-8"));
我得到的结果是:
SGVsbG8gdW5pdmVyc2Uh
U0dWc2JHOGdkVzVwZG1WeWMyVWg=
Hello universe!
答案 0 :(得分:5)
U0dWc2JHOGdkVzVwZG1WeWMyVWg=
解码为SGVsbG8gdW5pdmVyc2Uh
,Hello universe!
编码。所以你做了两次编码。
没有区别。您使用的API方式错误。不要再次编码已编码的数据。