Вывод кодировки Java base64 от Apache Common - «неправильный» результат - PullRequest
1 голос
/ 28 февраля 2012

Я пытаюсь использовать функциональность кодирования Base64 из Apache Common.Но, похоже, я получил «неправильный» результат.Документ: здесь .

Мой код такой:

import org.apache.commons.codec.binary.Base64;
String data = "hi,all,how can this happen?";

byte[] databytes = Base64.encodeBase64(data.getBytes());
data = databytes.toString();

System.out.println(data);
//the result is:
//[B@121cc40

Однако я кодирую ту же строку, используя Python, код:

import base64
print base64.b64encode("hi,all,how can this happen?")
#The result is aGksYWxsLGhvdyBjYW4gdGhpcyBoYXBwZW4/

Как может быть такая разница?

Ответы [ 2 ]

4 голосов
/ 28 февраля 2012

Это не то, как вы печатаете байтовый (или любой другой тип) массив в Java, если вы хотите просмотреть его содержимое.
Это :

System.out.println(Arrays.toString(data));
0 голосов
/ 28 февраля 2012
 import org.apache.commons.codec.binary.Base64;

    public class Codec {
      public static void main(String[] args) {
        try {
          String data = "hi,all,how can this happen?";
          String encodedText;

          // Base64
          encodedText = new String(Base64.encodeBase64(data.getBytes()));
          System.out.println("Encoded: " + encodedText);
          System.out.println("Decoded:" 
              + new String(Base64.decodeBase64(encodedText.getBytes())));

        } 
        catch (Exception e) {
          e.printStackTrace();
        }
      }
    }

Теперь он будет кодировать ваши строковые данные

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...