# 1. str - str
In [1]: f = '%(msg)s'
In [2]: d = {'msg': '中文'}
In [3]: f % d
Out[3]: '\xe4\xb8\xad\xe6\x96\x87'
# 2. str - unicode
In [4]: f = '%(msg)s'
In [5]: d = {'msg': u'中文'}
In [6]: f % d
Out[6]: u'\u4e2d\u6587'
# 3. unicode - str
In [7]: f = u'%(msg)s'
In [8]: d = {'msg': '中文'}
In [9]: f % d
---------------------------------------------------------------------------
UnicodeDecodeError Traceback (most recent call last)
<ipython-input-9-dd7bac6267e3> in <module>()
----> 1 f % d
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
# 4. unicode - unicode
In [10]: f = u'%(msg)s'
In [11]: d = {'msg': u'中文'}
In [12]: f % d
Out[12]: u'\u4e2d\u6587'