我正在尝试将十六进制消息转换为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
答案 0 :(得分:1)
parseHexBinary
is documented获取xsd:hexBinary
定义的输入。
这意味着输入字符串必须包含仅十六进制字符并始终成对。您的输入流包含空格字符,必须在解析之前将其删除。
input = input.replaceAll(" +", "");