您的姓氏包含无效字符(2010)

软件系统经常会拒绝或篡改完全有效的人名,从只有一个字母的单名和很短的姓氏,到带连字符、变音符号、非拉丁文字或异常大小写的名字都不例外。评论者分享了大量现实中的失败案例——机票、银行登录、政府身份证件、酒店网站和旧式大型机——这些问题迫使人们把自己的名字拼错或截短,甚至被当作可疑对象。一个反复出现的主题是,僵硬的校验规则和以 ASCII 为中心的假设,不仅反映出糟糕的技术设计(例如缺乏 Unicode 支持),还把责任推给用户,而不是承认系统本身的局限。

关于姓名的假设与误解

  • 许多例子表明,常见的软件假设是错误的:人们可能只有一个名字、多个姓氏、没有姓氏、单名、非常短的名字(1–2 个字母),或者有多个“全名”。
  • 刚性的名字/姓氏拆分、强制顺序以及最小长度规则经常失效。
  • 系统经常坚持要求输入的姓名“必须与身份证件一致”,却同时拒绝证件上实际存在的字符。

技术限制:编码与校验

  • 带重音符号、变音符号、ß、ø、ć、变音字母和非拉丁文字的姓名,常常会破坏表单、数据库和下游系统。
  • 前端可能接受 Unicode,但后端会悄悄截断、重新编码或拒绝,导致邮件丢失、记录不匹配或登录失败。
  • 旧式编码(EBCDIC、老旧的 8 位代码页、日语中的半角/全角变体)以及大型机时代的限制,仍然推动着“仅 ASCII”规则。
  • 有些人讨论系统是否应当允许几乎所有 Unicode,只需去除控制字符/行分隔符;另一些人则指出,与非 Unicode 或外部系统(邮政、航空、政府)集成会使这一点复杂化。

航空公司、银行和政府系统

  • 航空公司是常见的“罪魁祸首”:拒绝某些字符、截断姓名、错误处理音译(例如,umlaut → ue 还是 u,ø → o 还是 oe),或者把子串当成脏话(Scunthorpe 类型问题)。
  • 安全检查往往依赖人工常识来弥合机票、护照和后端限制之间的不一致;有时这会失败,并带来巨大的麻烦。
  • 银行、税务机关和官方登记系统经常会去掉变音符号、弄乱空格/连字符,或者强制使用过短字段。

文化与法律上的命名惯例

  • 几条帖子描述了各国特定的规则:必须使用带性别的后缀、对法定姓名限制可用字符集,以及官方仅允许汉字或片假名表示。
  • 这些规则会与外语文字、中间名以及不同的姓名顺序约定发生冲突,尤其是在跨境场景中。

用户的变通方法与应对策略

  • 许多人会把自己的名字“英语化”或 ASCII 化,去掉标点或中间名,或者保留多个拼写版本(用于航空公司、银行、咖啡店)。
  • 有些人会注册别名或缩短后的法定形式,专门用来避免软件出错。
  • 一个反复出现的挫败感,不仅在于技术失败本身,还在于系统和工作人员暗示这个人的名字“无效”,而不是承认软件的局限性。