我正在尝试使用 org.apache.commons.codec.binary.Hex对字符串值进行编码和解码:
例如:
Hex.encodeHex("10".getBytes()).toString();
然而,这并没有给我一个十六进制输出,而是类似这样的输出:
[C@596d444a
知道为什么会这样吗?
最佳答案
是的 - 对 encodeHex()
的调用返回一个字符数组 (char[]
) 而您只是在该数组上调用 toString
.请改用 String(char[]) 构造函数:
new String(Hex.encodeHex("10".getBytes()))
(我强烈鼓励你不要使用无参数的String.getBytes()
方法,顺便说一句,它使用平台默认编码。它是一个恒定的源细微的错误。)
关于java - Apache Commons 十六进制编码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5153316/