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!エンコードされています。したがって、エンコードを2回行いました。

違いはありません。API を間違った方法で使用しています。既にエンコードされたデータを再度エンコードしないでください。

于 2013-05-21T12:14:30.750 に答える