str 和 unicode
str和unicode都是basestring的子類
所以有判斷是否是字串的方法
def is_str(s): return isinstance(s, basestring)
str和unicode 轉換
decode 文件
encode 文件
str -> decode(‘the_coding_of_str‘) -> unicode unicode -> encode(‘the_coding_you_want‘) -> str
區別
str是位元組串,由unicode經過編碼(encode)後的位元組組成的
宣告方式
s = ‘中文‘ s = u‘中文‘.encode(‘utf-8‘) >>> type(‘中文‘)
求長度(返回位元組數)
>>> 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‘中文‘)
求長度(返回字元數),在邏輯中真正想要用的
>>> u‘中文‘ u‘\u4e2d\u6587‘ >>> len(u‘中文‘) 2
str 和 unicode
str和unicode都是basestring的子類
所以有判斷是否是字串的方法
def is_str(s): return isinstance(s, basestring)
str和unicode 轉換
decode 文件
encode 文件
str -> decode(‘the_coding_of_str‘) -> unicode unicode -> encode(‘the_coding_you_want‘) -> str
區別
str是位元組串,由unicode經過編碼(encode)後的位元組組成的
宣告方式
s = ‘中文‘ s = u‘中文‘.encode(‘utf-8‘) >>> type(‘中文‘)
求長度(返回位元組數)
>>> 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‘中文‘)
求長度(返回字元數),在邏輯中真正想要用的
>>> u‘中文‘ u‘\u4e2d\u6587‘ >>> len(u‘中文‘) 2