Python - isalpha()在unicode修饰符上返回True

时间:2018-04-01 13:46:49

标签: python unicode python-unicode

如果符号u'\u02c7'.isalpha()不是字母,为什么ˇ会返回True?这种方法只能用ASCII字符正常工作吗?

1 个答案:

答案 0 :(得分:3)

U+02c7 CARONLm (Modifier Letter) category中的代码点,因此根据Unicode标准,它是字母。

str.isalpha()的文档清楚地说明了所包含的内容:

  

字母字符是在Unicode字符数据库中定义为“Letter”的那些字符,即具有一般类别属性的那些字符是“Lm”,“Lt”,“Lu”,“L1”或“Lo”之一。 )

你没有明确正常工作的意思;很明显,你对字母的构成有不同的定义。如果你只想要 Latin-1 字母,那么你还需要限制测试字符串是否可以安全地编码为Latin-1。 Latin的Latin-1子集中只有零Lm类别的代码点(也没有Lt字符,只有2个Lo字符,ª(U + 00AA)和º(U + 00BA))。