以Unicode字符获取“实际”字符串长度

时间:2014-04-29 09:19:25

标签: python python-2.7 string-length unicode-string

给出像" " (\xe2\x9c\xae),例如,可以是" Σ"," д"或" Λ")我想找到"实际"在屏幕上打印时角色所需的长度

例如

len("✮")
len("\xe2\x9c\xae")

都返回3,但应该是1

2 个答案:

答案 0 :(得分:2)

您可以尝试这样:

unicodedata.normalize('NFC', u'✮')
len(u"✮")

UTF-8是一种unicode编码,它对特殊字符使用多个字节。查看unicodedata.normalize()

答案 1 :(得分:0)

我的answersimilar question

您正在寻找当前输出上下文的渲染宽度。对于图形UI,通常有一种方法可以直接查询这些信息;对于文本环境,您所能做的就是猜测一致的渲染引擎可能会做什么,并希望实际的引擎符合您的期望。