python2.7编码问题
openstack查看安全组
sec = nova.servers.list_security_group(server='4299ca8e-e997-4293-ab04-30410e37996b')
print(sec)
出现如下错误:
UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 75-78: ordinal not in range(128)
分析报错原因
python2.7存在的编码问题
解决问题
import sys
reload(sys)
sys.setdefaultencoding('utf8')
sec = nova.servers.list_security_group(server='4299ca8e-e997-4293-ab04-30410e37996b')
print(sec)
中文编码
中文在python2.7中采用utf-8编码后:
a = "中文编码"
'\xe4\xb8\xad\xe6\x96\x87\xe7\xbc\x96\xe7\xa0\x81'
将中文utf-8编码转为unicode编码
b = a.decode("utf-8")
u'\u4e2d\u6587\u7f16\u7801'
等同于
u"中文编码"
将中文的unicode编码转为utf-8编码
b.encode("utf-8")
'\xe4\xb8\xad\xe6\x96\x87\xe7\xbc\x96\xe7\xa0\x81'