1

我需要将 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!
4

1 回答 1

5

U0dWc2JHOGdkVzVwZG1WeWMyVWg=解码的是SGVsbG8gdW5pdmVyc2Uh哪个被Hello universe!编码。所以你做了两次编码。

没有区别。您以错误的方式使用 API。不要再次编码已经编码的数据。

于 2013-05-21T12:14:30.750 回答