正则与文本处理指南

全角转换与 NFKC:归一化范围不同

明确转换全角 ASCII,在需要保持身份时避免过宽的兼容归一化。

Nav Tools ·

转换明确范围的字符

全角 ASCII 字母数字有对应半角字符,转换器也可以处理全角空格。

先用本站宽度转换处理短样例,逐字符检查,再用于标识符。

ABC123  → ABC123 

NFKC 不只处理宽度

兼容归一化除宽度外,还可能转换连字、圈号数字等兼容形式。

只转全半角与 NFKC 的结果未必一致,应按数据约定选择范围。

'①'.normalize('NFKC') → '1'
This is a compatibility mapping, not only a width change.

检测归一化后的冲突

不同存储字符串可以归一化成同一个值,在用户名或路由空间中会形成冲突。

采用策略前检查全量集合,明确重名是拒绝还是迁移。

保留原始显示文字

搜索可以使用归一化值,同时保留原始显示名;需要两者时应分开存储。

密码或外部签名文本不能临时归一化,双方必须约定完全相同的预处理规则。

参考资料

← 正则与文本处理指南