Validation 信用卡验证:卡名是否可以包含非ASCII字符?

Validation 信用卡验证:卡名是否可以包含非ASCII字符?,validation,internationalization,ascii,credit-card,Validation,Internationalization,Ascii,Credit Card,卡名(即持卡人姓名,而非卡类型)是否可以包含非ASCII字符? 例如:“JOSÉGONZÁLEZ”。我过去使用的信用卡处理程序只允许在持卡人姓名中使用ASCII码,但您应该向您的信用卡处理程序询问他们的要求/限制是什么。使用的字符集不允许使用变音符号。简而言之,它只允许使用大写ASCII字符 限制最终来自银行卡将数据编码到磁条上的历史方式()。数据以每字符7位的格式编码,称为 持卡人姓名由最多26个字符编码,每个字符的范围为十六进制20-5F。您可以在这里看到该表:实际上,只允许使用ASCII字

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

我过去使用的信用卡处理程序只允许在持卡人姓名中使用ASCII码,但您应该向您的信用卡处理程序询问他们的要求/限制是什么。

使用的字符集不允许使用变音符号。简而言之,它只允许使用大写ASCII字符

限制最终来自银行卡将数据编码到磁条上的历史方式()。数据以每字符7位的格式编码,称为


持卡人姓名由最多26个字符编码,每个字符的范围为十六进制20-5F。您可以在这里看到该表:

实际上,只允许使用ASCII字符。但其他操纵是允许的。可以在第一行或第二行打印姓名。你可以选择带点或不带点等等


因此,使用diacrits(挪威和德国名称)无法让客户满意。但您可以让客户在只有一个字符的全名(如JOSE GONZALES或J.GONZALES)之间进行选择。它有助于让客户满意。

磁条甚至可以存储标点符号,如!“*#%&()^:;<>=?[/]\ubr> 但实际上,持卡人姓名仅使用:

  • 英文大写字母的范围
  • 用撇号(')表示“Gareth O'Hare”等名称
  • 减号(-)表示“Alexandru Cristian”这样的双名
  • 点(.)表示尊敬的前缀,如“MR.”、“MRS.”、“MISS.”、“MS.”、“DR.”、“THE.”
  • Dot(.)表示“Jimmy L.Morgan”、“J.P.Teron”等首字母缩写

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

FWIW,在谷歌图像搜索中搜索“jcb卡”(一种日本信用卡)会显示带有ASCII持卡人姓名的卡。即使日本信用卡也只使用ASCII,这一限制似乎是通用的。根据该链接,它不是ASCII,而是“ANSI/ISO阿尔法,它看起来像映射到0x00…0x3F的0x20到0x5F之间的ASCII子集,并在末尾添加奇偶校验位。这些数字看起来像从0x30到0x3F的ASCII码,映射到0x0…0xF,并在末尾添加奇偶校验位。因此,甚至没有小写字母,更不用说高ASCII或任何UTF-8支持的可能性。是的,它似乎远远不是太严格(我的应用程序目前只允许打印ASCII字符),我实际上是太宽松了!然而,我确信如果我开始拒绝小写字母,用户会很恼火,所以我可能会放弃它。我主要担心的是我拒绝了合法的信用卡,所以我很欣慰事实并非如此。我想你不明白。用信用卡磁条上的编码来表示小写字母是不可能的。他们甚至不在角色集中,我明白。我的意思是,从可用性的角度来看,如果卡名被拒绝,用户会感到沮丧,因为他们是用小写字母输入的。因此,我将把所有小写字母转换成大写。公平地说,卡名对于几乎所有的付款都是无用的,唯一的例外是用卡支付机票或租车(这些数据会被捕获以供以后的犯罪式调查)。几乎每次有人问我卡片上印的名字时,我都会输入类似“傻麦克杜夫先生”的字。