给出像" ✮
" (\xe2\x9c\xae
),例如,可以是" Σ
"," д
"或" Λ
")我想找到"实际"在屏幕上打印时角色所需的长度
例如
len("✮")
len("\xe2\x9c\xae")
都返回3,但应该是1
答案 0 :(得分:2)
您可以尝试这样:
unicodedata.normalize('NFC', u'✮')
len(u"✮")
UTF-8是一种unicode编码,它对特殊字符使用多个字节。查看unicodedata.normalize()
答案 1 :(得分:0)
您正在寻找当前输出上下文的渲染宽度。对于图形UI,通常有一种方法可以直接查询这些信息;对于文本环境,您所能做的就是猜测一致的渲染引擎可能会做什么,并希望实际的引擎符合您的期望。