string encode from ‘utf-8’ to ‘cp932’ avoiding “UnicodeDecodeError”
# -*- coding: utf-8 -*- ENCODE_TO = 'cp932' L = ['a', '漢字', u'漢字', 1, None] for c in L: if isinstance(c, unicode): print c.encode(ENCODE_TO) elif isinstance(c, str): # when element is str, firstly decode to unicode object and then encode print c.decode('utf-8').encode(ENCODE_TO, 'replace') else: print str(c)