# -*- coding: UTF-8 -*-
import logging
logging.basicConfig()
logger = logging.getLogger()
logger.warning('testing')
# unicode.format(str) raises an error
name = 'Gonçalves'
print type(name)
print name
try:
message = u'{}'.format(name)
except UnicodeDecodeError as e:
print e
# but logger(unicode) is fine
logging.warn(u'Gonçalves')
# so unicode.format(str.decode()) doesn't raise
name = 'Gonçalves'
print type(name)
print name
message = u'{}'.format(name.decode('utf-8'))
logging.warning(message)
# and neither does unicode.format(unicode)
name = u'Gonçalves'
print type(name)
print name
message = u'{}'.format(name)
logging.warning(message)
问题是
full_name
是一个str,而不是unicode对象。在这样可以解决您的问题:
问题是unicode字符串的默认编码是ASCII,它只支持128个字符。使用UTF-8可以解决这个问题。在
免责声明这在细节上可能是错误的,我只在py3中编写代码。在5分钟内学会了这些。在
相关问题 更多 >
编程相关推荐