长度商标符号的

问题描述:

为什么长度商标符号的

>>> len('™') 
>>> 3 
在Python 2.x的

我如何快速修复它被视为一个字符(如Python 3.x的?)

你的终端编码设置为UTF-8。您正在计数的字节在编码字符:

>>> '™' 
'\xe2\x84\xa2' 
>>> len('™') 
3 

使用Unicode来算字符,而不是字节:

>>> u'™' 
u'\u2122' 
>>> len(u'™') 
1 

解码从终端编码:

>>> import sys 
>>> '™'.decode(sys.stdin.encoding) 
u'\u2122' 

在Python 3,字符串为unicode值,Python 2 str类型重命名为byte(您的输入与Python 3中的b'™'基本相同)。

您可能需要Python和Unicode的读了起来: