转自:http://www.weidianyuedu.com/content/3013896012404.html
str 和 unicode
str和unicode都是basestring的子类
所以有判断是否是字符串的方法
def is_str(s): return isinstance(s, basestring)
str和unicode 转换
str -> decode(‘the_coding_of_str‘) -> unicode unicode -> encode(‘the_coding_you_want‘) -> str
区别
str是字节串,由unicode经过编码(encode)后的字节组成的
声明方式
s = ‘中文‘ s = u‘中文‘.encode(‘utf-8‘)
type(‘中文‘) <type ‘str‘>
求长度(返回字节数)
u‘中文‘.encode(‘utf-8‘) ‘\xe4\xb8\xad\xe6\x96\x87‘
len(u‘中文‘.encode(‘utf-8‘))
6
unicode才是真正意义上的字符串,由字符组成
声明方式
s = u‘中文‘
s = ‘中文‘.decode(‘utf-8‘)
s = unicode(‘中文‘, ‘utf-8‘)
type(u‘中文‘) <type ‘unicode‘>
求长度(返回字符数),在逻辑中真正想要用的
u‘中文‘ u‘\u4e2d\u6587‘
len(u‘中文‘)
2