Dre*_*w H 2 java base64 apache-commons-codec
String encode = Base64.encodeBase64String("Hello".getBytes());
System.out.println(encode);
byte[] decode = Base64.decodeBase64(encode);
System.out.println(decode.toString());
Run Code Online (Sandbox Code Playgroud)
我不知道这里有什么不对.我已经尝试了所有可能的组合.设置charset,toString,no toString.编码工作得很好.我可以将该号码丢入Web解码器并每次都获得正确的值.只是不能让这个工作.
输出:
run:
SGVsbG8= (encode)
[B@1fb8ee3 (decode)
Run Code Online (Sandbox Code Playgroud)
如果我使用for循环并手动将字符添加到字符串,我可以使它工作.但是我认为串音为我做了那个?
当前的问题是如何将字节数组转换为字符串.
试试这个:
System.out.println(new String(decode));
Run Code Online (Sandbox Code Playgroud)
但是,使用重载String.getBytes()或new String(byte[])不指定字符编码通常是个坏主意.他们使用平台默认编码,这意味着您的代码不可移植 - 或者至少,您的数据不是.我建议你使用常见的编码,如UTF-8.