跳到内容

歧义 Unicode 字符字符串 (RUF001)

作用

检查字符串中是否存在歧义 Unicode 字符。

为什么这不好?

一些 Unicode 字符在视觉上与 ASCII 字符相似,但具有不同的代码点。例如,GREEK CAPITAL LETTER ALPHA (U+0391) 在视觉上与 ASCII 字符 A 相似,但并不相同。

使用歧义 Unicode 字符可能会使读者感到困惑,导致细微的错误,甚至使恶意代码看起来无害。

预览中,此规则还将标记与其它非首选 Unicode 字符混淆的 Unicode 字符。 例如,规范建议使用 GREEK CAPITAL LETTER OMEGA 代替 OHM SIGN

您可以通过lint.allowed-confusables设置,从标记为歧义的字符列表中省略某些字符。

示例

print("Ηello, world!")  # "Η" is the Greek eta (`U+0397`).

建议改为

print("Hello, world!")  # "H" is the Latin capital H (`U+0048`).

Options (选项)