ISO 8583 Parser
在线速查

ISO 8583 位图计算器(双向)

两个方向都能算。上面输域号出位图,下面输位图出域号,还会把 64/128 位逐位画出来。

自动判断是否需要扩展位图:出现 65~128 域时,第 1 位会自动置 1。
位图(十六进制):
支持 16 或 32 个十六进制字符。第 1 位为 1 表示存在扩展位图。
置位的数据域:

位图是怎么读的

位图告诉接收方:这条报文里出现了哪些数据域。主位图 8 字节 64 位,每一位对应一个域,从第 1 位开始数,不是第 0 位——这是新人最常犯的偏移错误。

第 1 位有特殊含义:它置 1 表示后面还跟着一个扩展位图,用来表示 65–128 域。所以当你用到任何一个 65 号以上的域时,第 1 位必须置 1,位图也从 8 字节变成 16 字节。上面的计算器会自动处理这一点。

手工验证的方法

拿十六进制位图的第一个字符:7 是二进制 0111,说明第 1 位为 0(无扩展位图)、第 2、3、4 位为 1(DE2、DE3、DE4 存在)。一个字符 = 四位,按这个规律往后推就能手工核对。

排查报文解析失败时,先看位图。如果解出来的域号列表明显不对(比如出现了一堆不该有的高位域),多半是编码判断错了——同一串字节按 ASCII 和按 BCD 解,位图完全不同。解析器的自动识别就是靠这个打分的。

常见坑

别把位图本身算成 DE1。DE1 就是扩展位图的存在标志位,它不是一个独立的数据域,所以上面的反查结果里不会把 1 列出来。另外,位图长度要和编码方式匹配:ASCII 编码下 16 个字符表示 8 字节,二进制编码下就是 8 个字节本身。


相关阅读