我有一个Base64字符串YxRfXk827kPgkmMUX15PNg==
我想将其转换为63145F5E4F36EE43E09263145F5E4F36
所以我认为场景就像这样我必须首先解码Base64字符串,然后将其转换为Hex
我的代码如下
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
输出.
所以请帮我解决这个问题.
由于您已经在使用Apache Common Codec:
String guid = "YxRfXk827kPgkmMUX15PNg=="; byte[] decoded = Base64.decodeBase64(guid); String hexString = Hex.encodeHexString(decoded); System.out.println(hexString);
使用标准Java库:
String guid = "YxRfXk827kPgkmMUX15PNg=="; byte[] decoded = Base64.getDecoder().decode(guid); System.out.println(String.format("%040x", new BigInteger(1, decoded)));