如何获得持卡人姓名

How to get a CardHolder Name

我正在尝试读取智能卡,并且我已经能够从智能卡中获取一些数据。我现在面临的问题是如何从智能卡中获取CardHolder名称。

我有

if(emv_is_tag_present(0x5F20) >=0){
                                tagDataLength = emv_get_tag_data(0x5F20, tagData, tagData.length);
                                if(debug)Log.d(APP_TAG, "Carder "+ tagDataLength);
                                appState.trans.setuserName(StringUtil.toString(AppUtil.removeTailF(ByteUtil.bcdToAscii(tagData,0, tagDataLength))));
                            }

我真的不知道在尝试使用 5F20 持卡人姓名时从卡中获取此字段时使用的格式 根据 ISO 7813 Card ans 2-26 '70' 或 '指示持卡人姓名我从 here

得到的 77' 2 26 primitive

这是我得到的输出 3030303030333830D160222101..但是,每当我尝试将其转换为字符串时...它返回 00000380Ñ`"!这实际上不是持卡人的姓名。

通读文档(link 发布在那里),我不确定我在获取数据时是否使用了正确的格式。因为,在文档中,我有 ans 2-26。不太明白什么意思

Tag 5F20 - CARD HOLDER NAME,如果CARD返回此标签的值,则值为十六进制字符串 - ASCII字符的十六进制值,你需要做的是将值转换为字符串,您将在卡片中获得个性化的值。

in the document, i have ans 2-26. I do not really understand what it means.

有时我们避免个性化卡内的持卡人姓名,然后我们个性化 " /"/" - space 后跟 / = 2 个字符。它是不同 EMV 规范中定义的标签 5F20 的最小值。最大值为 26,因此 2-26 用于标记 5F20。

希望这些信息对您有所帮助..