【发布时间】:2014-01-17 16:29:37
【问题描述】:
我发现 unicode 有点奇怪,据我了解,如果我 u"" + "string",类型将是 unicode,但为什么它们的长度不同?
print len(u''+'New York\u200b')
14
print type(u''+'New York\u200b')
<type 'unicode'>
print len(u'New York\u200b')
9
print type(u'New York\u200b')
<type 'unicode'>
我也试过去掉\u200b,我认为是unicode
text = u'New York\u200b'
print text.encode('ascii', errors='ignore')
New York
text = u''+'New York\u200b'
print text.encode('ascii', errors='ignore')
New York\u200b
也得到了不同的结果,我真的很困惑! 顺便说一句,我使用的是 python 2.7,是时候换成 3.3 了吗?提前致谢!!
【问题讨论】:
-
在
u''+'New York\u200b'中,'New York\u200b'不是 unicode,因此,\u200b 被忽略。不过,这与您的第二个结果不一致。
标签: python python-2.7 python-3.x unicode