信用卡验证:卡片名称可以包含非ASCII字符吗?

31

卡片名称(即持卡人姓名,而非卡片类型)是否可以包含非ASCII字符? 例如:"JOSÉ GONZÁLEZ"。

5个回答

34
所使用的字符集不允许使用变音符号。简而言之,它只允许使用大写ASCII字符。
这种限制最终源于银行卡将数据编码到磁条上的历史方式(如ISO 7811中定义)。数据以每个字符7位的格式编码,称为ITU-T.50
持卡人姓名使用最多26个字符进行编码,每个字符的范围为十六进制20-5F。您可以在此处查看此表:http://www.zytrax.com/tech/ia5.html

2
根据该链接,它不是ASCII,而是“ANSI/ISO ALPHA”,看起来像是从0x20到0x5F映射到0x00...0x3F的ASCII子集,并在末尾添加了一个奇偶校验位。数字看起来像是从0x30到0x3F映射到0x0...0xF的ASCII,并在末尾添加了一个奇偶校验位。因此,甚至没有小写字母,更不用说高ASCII或任何潜在的UTF-8支持。 - Mike DeSimone
1
是的,看起来我并不是太严格了(我的应用程序目前仅允许可打印的ASCII字符),实际上我过于宽容了!但是,如果我开始拒绝小写字母,用户肯定会感到恼怒,所以我可能会让它保持原样。我的主要担心是我正在拒绝合法的卡片,所以我很欣慰这不是事实。 - Mr Snrub
我认为你没有理解。信用卡磁条的编码方式无法表示小写字母,甚至它们也不在字符集中。 - Mike DeSimone
8
公平地说,这个卡片名称对于几乎所有的付款都没有什么用处,唯一的例外是像用卡支付航空机票或租车时(这些数据会被记录下来以进行后续的犯罪调查)。每当有人要求我输入印在卡片上的姓名时,我几乎总是输入类似“愚蠢麦克达夫先生”的内容。 - PaulG
@MrSnrub,当提交时只允许特定字符时,最好允许更多的字符,然后在服务器端将其转换为仅允许的字符。这比在表单中直接禁止字符更好用。 例如,用户可以提交José González—Henrik O’Hare,但在服务器上会被转换为JOSE GONZALEZ HENRIK O HARE。P.S. 根据Sergey Ponomarev的答案,一些标点符号如撇号和破折号是允许的。 - Michael Innes
显示剩余2条评论

16

磁条可以存储包括 ! " * # % & ( ) ^ : ; < > = ? [ / ] _ 在内的标点符号。

但在实际使用中,持卡人姓名只使用以下内容:

  • 英文大写字母范围
  • 撇号(')用于像“Gareth O'Hare”这样的姓名
  • 连字符(-)用于像“Alexandru-Cristian”这样的双重名称
  • 点号(.)用于敬语前缀,例如“先生”,“夫人”,“小姐”,“女士”,“博士”,“THE.”
  • 点号(.)用于缩写词,例如“Jimmy L. Morgan”,“J.P. Teron”

2

事实上,只允许使用ASCII字符。但是其他操作是被允许的。可以在第一行或第二行打印名称。可以选择是否带点等。

因此,您无法使用变音符号(例如挪威和德国人的名字)使客户满意。但是,您可以让客户在完整的名字和仅一个字符的名字之间进行选择(例如JOSE GONZALES或J. GONZALES)。这有助于让客户感到满意。


2

芯片卡(也称智能卡、EMV卡)包含并可以返回大量不同的值,包括“持卡人姓名”(标签5F20)和“扩展持卡人姓名”(标签9F0B)。 EMV Co.表示,这两个标签都应遵循ISO 7813,但我已经看到一张卡片(来自韩国航空的“NH卡”),其中标签5F20包含小写字符。潘多拉的盒子已经被打开了!


1
过去我使用的信用卡处理器只允许在持卡人姓名中使用ASCII字符,但您应该与您的信用卡处理器核实他们的要求/限制。

1
顺便提一下,在谷歌图片搜索“jcb卡”(一种日本信用卡)时,会显示带有ASCII持卡人姓名的卡片。如果即使日本的信用卡也仅使用ASCII,那么这种限制似乎是普遍存在的可能性。 - Laurence Gonsalves

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接