Apache Commons十六进制编码错误

3

我正在尝试使用org.apache.commons.codec.binary.Hex对字符串值进行编码和解码:

e.g.:

Hex.encodeHex("10".getBytes()).toString();

然而,这并没有给我十六进制的输出,而是输出类似于以下内容:

[C@596d444a

有任何想法为什么会发生这种情况?
2个回答

7
是的 - 调用encodeHex()返回一个字符数组(char[]),你只是在调用toString。改为使用String(char[])构造函数即可:
new String(Hex.encodeHex("10".getBytes()))

顺便提一句,我强烈建议您不要使用无参的String.getBytes()方法,因为它使用平台默认编码。这常常会导致微妙的错误。


0
根据您提供的链接:public static char[] encodeHex(byte[] data)返回@return包含十六进制字符的char[]。因此输出是正确的。使用char数组创建一个字符串。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接