Python中的Unicode长度

Python中的Unicode长度,python,unicode,Python,Unicode,我有这根绳子 text = u"\ud800\udc00" 当我检查len(text)时,它返回2 我不知道为什么会发生这种情况 因为字符串中有两个unicode代码点,而字符串是unicode代码点序列(在Python 3中) 在Python2中,这不是字符串,而是一个unicode对象,它同样是一个unicode代码点序列。Python3.3+和较旧版本的广泛版本允许字符串中包含单个代理代码,即使它不是有效的unicode。在这些情况下,repr是u'\\ud800\\udc00'。在狭窄

我有这根绳子

text = u"\ud800\udc00"
当我检查
len(text)
时,它返回
2


我不知道为什么会发生这种情况

因为字符串中有两个unicode代码点,而字符串是unicode代码点序列(在Python 3中)


在Python2中,这不是字符串,而是一个
unicode
对象,它同样是一个unicode代码点序列。

Python3.3+和较旧版本的广泛版本允许字符串中包含单个代理代码,即使它不是有效的unicode。在这些情况下,repr是
u'\\ud800\\udc00'
。在狭窄的构建中,repr将是
u'\U00010000'
(在Python 3中没有
u
前缀),但长度将是2。