Apache Commons Hex编码错误

ama*_*euk 1 java hex apache-commons-codec

我正在尝试使用org.apache.commons.codec.binary.Hex来编码和解码String值:

例如:

Hex.encodeHex("10".getBytes()).toString();
Run Code Online (Sandbox Code Playgroud)

但是,这不是给我一个十六进制输出,但输出类似于:

[C @ 596d444a

任何想法为什么会这样?

Jon*_*eet 5

是的 - 调用encodeHex()返回一个char数组(char[])而你只是调用toString它.改为使用String(char [])构造函数:

new String(Hex.encodeHex("10".getBytes()))
Run Code Online (Sandbox Code Playgroud)

(我强烈建议您不要使用无参数String.getBytes()方法,顺便说一下,它使用平台默认编码.它是细微错误的常数来源.)