java convert hex to ascii - java.lang.IllegalArgumentException:hexBinary需要是偶数长度

时间:2018-06-19 10:37:47

标签: java hex ascii converter

我正在尝试将十六进制消息转换为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

1 个答案:

答案 0 :(得分:1)

parseHexBinary is documented获取xsd:hexBinary定义的输入。

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

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