Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获得;实际的;以Unicode字符表示的字符串长度_Python_Python 2.7_String Length_Unicode String - Fatal编程技术网

Python 获得;实际的;以Unicode字符表示的字符串长度

Python 获得;实际的;以Unicode字符表示的字符串长度,python,python-2.7,string-length,unicode-string,Python,Python 2.7,String Length,Unicode String,给定一个类似“✮“(\xe2\x9c\xae),例如,可以是其他类似“∑”、“Ф”或“λ”)的字符。我想找到在屏幕上打印字符时所采用的“实际”长度 比如说 len("✮") len("\xe2\x9c\xae") 两者都返回3,但应为1。您可以这样尝试: unicodedata.normalize('NFC', u'✮') len(u"✮") UTF-8是一种unicode编码,它对特殊字符使用多个字节。选中My to a: 您正在从当前输出上下文中查找渲染宽度。对于图形用户界面,通常有一种

给定一个类似“
“(
\xe2\x9c\xae
),例如,可以是其他类似“
”、“
Ф
”或“
λ
”)的字符。我想找到在屏幕上打印字符时所采用的“实际”长度

比如说

len("✮")
len("\xe2\x9c\xae")
两者都返回3,但应为1。您可以这样尝试:

unicodedata.normalize('NFC', u'✮')
len(u"✮")
UTF-8是一种unicode编码,它对特殊字符使用多个字节。选中My to a:


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

即使这样,也不一定计算用户感知的字符或图形集;变音符号的某些用法没有单一的代码点表示。我也不知道UTF-8(特别是)是如何进入画面的?这也返回len(unicodata.normalize('NFC',u'✮')) = 3Try:
len(“✮".解码(“utf-8”)
这不取决于所使用的字体以及它周围的字符吗?您要做的总体工作是什么?
len(“\xe2\x9c\xae”)。解码(“utf-8”)
在python2.7.5中工作得很好。有几种方法可以定义长度(和宽度)这里。这将有助于了解您的目的:例如,您是否正在尝试计算屏幕上一行可以容纳多少个字符?以像素为单位的渲染宽度是另一个主题。我看不出有人问过这个问题。对于单间隔文本输出,标准图示符宽度是最小的可寻址单位,我们对倍数感兴趣这和像素宽度没有太大区别。