java 将十六进制转换为 ascii - java.lang.IllegalArgumentException: hexBinary 需要是偶数长度

java convert hex to ascii - java.lang.IllegalArgumentException: hexBinary needs to be even-length

我正在尝试将十六进制消息转换为 ascii 而且我不明白为什么会出现此错误

String final = (msg1 + " " + msg2 + " " + msg3);
byte[] s = DatatypeConverter.parseHexBinary(final);
String final = new String(s);

这是我得到的错误:(数据正确)

java.lang.IllegalArgumentException: hexBinary needs to be even-length: 4C 4B 4C 41 36 4C 31 45 32 48 41 37 32 32 31 36 31 FF

parseHexBinary is documented to take the input as defined by xsd:hexBinary.

这意味着输入字符串必须包含 个十六进制字符并且始终成对。您的输入流包含 space 个字符,必须在解析之前将其删除。

input = input.replaceAll(" +", "");