比如给定一个字符,例如"✮
" (\xe2\x9c\xae
),还可以是类似于 "Σ
", "д
" 或 "Λ
" 的其他字符,我想找出该字符在屏幕上实际占用的长度。
例如:
len("✮")
len("\xe2\x9c\xae")
两个都返回3,但应该是1
比如给定一个字符,例如"✮
" (\xe2\x9c\xae
),还可以是类似于 "Σ
", "д
" 或 "Λ
" 的其他字符,我想找出该字符在屏幕上实际占用的长度。
例如:
len("✮")
len("\xe2\x9c\xae")
两个都返回3,但应该是1
unicodedata.normalize('NFC', u'✮')
len(u"✮")
UTF-8是一种unicode编码,用于处理特殊字符需要多个字节。请查看unicodedata.normalize()
u'✮'
已经处于正常形式,因此在这里规范化是无效的;OP实际的问题在于UTF-8编码是多字节的;希望到2022年我们都使用Python 3并且len()
正确计算代码点而不是字节。) - Maëlan
len("✮".decode("utf-8"))
- Grijesh Chauhanlen("\xe2\x9c\xae".decode('UTF-8'))
可以完美运行。 - Cthulhu