首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析某些ISO8583字段时出错

解析某些ISO8583字段时出错
EN

Stack Overflow用户
提问于 2020-08-05 05:07:58
回答 1查看 193关注 0票数 0

我将j8583作为解析ISO8583消息的库进行评估。它的工作原理,几乎所有的领域,但我有困难,以获得正确的值字段33。

我创建了以下单元测试:

代码语言:javascript
复制
@Test
public void testDecode() throws IOException, ParseException {
    MessageFactory<IsoMessage> messageFactory = ConfigParser.createFromClasspathConfig("j8583.xml");
    messageFactory.setUseBinaryMessages(true);

    String testData = "0100000000018000000006560103095900000360";
    IsoMessage isoMessage = messageFactory.parseMessage(HexCodec.hexDecode(testData), 0);

    assertEquals("560103", isoMessage.getField(32).toString());
    assertEquals("590000036", isoMessage.getField(33).toString());

}

这是我的配置

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE j8583-config PUBLIC "-//J8583//DTD CONFIG 1.0//EN" "http://j8583.sourceforge.net/j8583.dtd">

<j8583-config>

    <parse type="0100">
        <field num="32" type="LLBCDBIN" length="11"/>
        <field num="33" type="LLBCDBIN" length="11"/>
    </parse>

</j8583-config>

当运行单元测试字段32是正确的,但33失败。我得到的字段33的值是900000360

因为它们都配置相同,而且数据似乎是相同的(06560103095900000360),,所以我不明白为什么这不能正确地解析

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-06 00:58:38

对于奇数长度,数值是左填充,而不是右填充。所以第一次咬被忽略了,而不是最后一次。

很抱歉文件里不清楚。我会修改它来说明这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63258753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档