J8583 LLLLBIN和LLLLVAR产生不同的长度填充结果

时间:2019-04-11 08:59:07

标签: kotlin iso8583 j8583

LLLLVAR和LLLLBIN从相同的输入产生不同的长度。

试图将值“ 6832”传递到同一IsoMessage对象中,但是LLLLVAR返回“ 0004 6382”,而LLLLBIN返回“ 0008 36333832”。 / p>

源代码示例如下:

msg.setValue(60, "6832".toByteArray(Charsets.US_ASCII), IsoType.LLLLBIN, 10)//encodes to 000836333832 
msg.setValue(60, "6832", IsoType.LLLLVAR, 10) //encodes to 00046382 

我都应该返回0004,为什么结果都不同?

1 个答案:

答案 0 :(得分:0)

将ISO消息编码为文本时,LxBIN字段将其数据编码为十六进制,因此大小是您期望的两倍。但是,解码器会解码十六进制数据,并在解析时为您提供字节数组。

仅当使用二进制格式对整个邮件进行编码时,LxVAR和LxBIN字段的长度相同。