我发现有关unicode的一些奇怪之处,我理解如果我使用u"" + "string",类型应该是unicode,但是它们的长度为什么不同呢?
我尝试去除\u200b,我认为它是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
被忽略了。但是,这与您的第二个结果不一致。 - njzk2