擅长:python、mysql、java
<p>问题是<code>full_name</code>是一个str,而不是unicode对象。在</p>
<pre class="lang-py prettyprint-override"><code># -*- 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)
</code></pre>