ü/ü 难题

规范化 vs. 排序规则 & 实际 bug

  • 许多人指出,文章的问题在于缺乏一致的 Unicode 规范化,而不是 Unicode 本身有固有缺陷。
  • Unicode 规范化形式(NFC/NFD)处理组合字符与分解字符;规范等价的序列应当呈现相同。
  • 也有人强调,规范化(NFC/NFD)和排序/搜索(Unicode 排序算法,TR10)是两个不同的问题;二者都关乎相等性、排序和搜索。

易混淆字符、安全与搜索

  • 一些人讨论 Unicode “confusables”(视觉上相似但代码点不同的字符),用于识别垃圾信息、钓鱼和滥用。
  • 已有库可以把字符串映射为正则表达式,或映射为规范的“易混淆分组”,以捕捉诸如 ℍ℮1l೦ ≈ “Hello” 这样的技巧。
  • 也有人对把一切折叠成单一形式持怀疑态度,因为某些字符在视觉上与多个基础字母都可能混淆,而这种情况是合理存在的。

文件系统、macOS 与规范化痛点

  • macOS 历来会把文件名规范化为 NFD;APFS 改变了细节,但留下了一个规范化混杂、工具假设不一致的复杂生态。
  • 这会导致跨平台 bug(例如,看起来相同的文件名发生冲突、变音符号渲染位置不对、“ß” 与 “ss” 冲突)。
  • ZFS 因其可配置规范化而受到称赞;HFS+/APFS 与 git 的交互被引用为具体失败案例。

搜索行为、变音符号与地区语言

  • 关于搜索“应该”如何处理重音符号,争议非常大:
    • 有人希望搜索对重音不敏感(方便非母语用户和受键盘限制的人)。
    • 也有人坚持,把字母混为一谈(例如 n 与 ñ,cono 与 coño)会破坏语义和精确搜索。
  • 普遍共识是系统需要同时具备精确模式和模糊模式,通常还要考虑地区语言;仅靠 Unicode 并不能解决语言特定规则(如土耳其语 I、瑞典语 Å/Ä/Ö、荷兰语 IJ、匈牙利语二合字母等)。

姓名、护照与现实中的挫败感

  • 多个故事提到带有变音符号的姓名(如 ü、ß、非拉丁文字)在政府、银行、出行和遗留 IT 系统中出问题。
  • 变通办法包括把姓名 ASCII 化、采用双重官方拼写,甚至合法改名;一些评论者认为这是务实做法,另一些则认为不可接受。
  • 还提到欧洲法规(例如 GDPR 的准确性要求)作为推动修复姓名处理缺陷的外部压力。

Unicode 设计权衡与汉字统一

  • 一派批评同形字符和组合符号存在多种编码,认为 Unicode 本应强制采用一种规范形式。
  • 另一派回应说:
    • Unicode 必须兼容旧编码并支持不同书写系统与大小写行为的差异。
    • “同形字形 → 同一代码点”在字体、文字系统和历史语境中并没有明确可操作的定义,而汉字统一本身就展示了统一争议有多大。
  • 还有人指出,正确处理文本几乎总是需要地区信息(有时还需要语言标记),而不仅仅是原始代码点。