粗略将8583协议的报文域编码格式分为:BINARY,CHAR,NUMERIC,LLVAR,LLLVAR,LLLVAR_NUMERIC 这几种格式,BINARY采用二进制编码(8位二进制数编码为一个字节), CHAR、LLVAR、LLLVAR为ASC(即正常的getBytes(Encoding))编码, NUMERIC、LLLVAR_NUMERIC采用BCD(半个字节表示一个10进制数,每两位编码为一个字节)编码, CHAR、BINARY、NUMERIC都需要指定长度,CHAR类型左对齐、右补空格,NUMERIC右对齐、左补零, LLVAR域前加一个字节的字节长度(采用bcd编码), LLLVAR域前加两个字节的字节长度(采用bcd编码), LLLVAR_NUMERIC域前加两个字节的长度(注:非字节长度,而是数字的长度,即字节长度的两倍)(采用bcd编码)。 代码中会在IsoField setValue时进行格式化,组装报文时计算LLVAR等域长。
|