【发布时间】:2017-05-27 10:42:53
【问题描述】:
我有一个 Base64 字符串 YxRfXk827kPgkmMUX15PNg==
我想把它转换成63145F5E4F36EE43E09263145F5E4F36
所以我认为场景会是这样的 我必须先解码 Base64 字符串,然后将其转换为十六进制
我的代码如下
import org.apache.commons.codec.binary.Base64;
String guid = "YxRfXk827kPgkmMUX15PNg==";
byte[] decoded = Base64.decodeBase64(guid);
try {
System.out.println(new String(decoded, "UTF-8") + "\n");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
以上代码给出c_^O6?C??c_^O6
但我不知道如何将此字符串转换为十六进制字符串。所以它给出了63145F5E4F36EE43E09263145F5E4F36 输出。
所以请帮我解决这个问题。
【问题讨论】:
-
您将字节编码为 UTF-8。我猜你想要的是十六进制字节值的字符串表示形式。
-
你可能想看看DatatypeConverter.parseBase64Binary() 和 printHexBinary()