java - Apache Commons 十六进制编码错误

标签 java hex apache-commons-codec

我正在尝试使用 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/

相关文章:

java - 为什么触摸屏幕时我的性能会提高?

java - 线程工作分配和多核的JVM实现

java - count() 方法之间的冲突 - CrudRepository - Spring

java - java.utils.HashMap 中的 Node.equals 方法

java - 使用 apache commons 编解码器的 Base64 解码在非常大的二进制文件上失败

java - Java中BASE64类的编解码算法效率如何?

c# - 将 10 位数字转换为十六进制字符串

c - 标准输入:十六进制值根据标准输入而变化

node.js - 为什么同一个字符串有两个不同的缓冲区?

java - Android 上的 NoSuchMethodError : org. apache.commons.codec.binary.Base64.decode