Wenn es sich um eine Liste handelt, wird versucht, die str-Funktion zu verwenden Drucken Sie auf dem Element oder weisen Sie dem zu druckenden Unicode-Typ ein Format zu. Es ist problematisch, wenn die Anzahl der Elemente zunimmt.
Referenzierte Site: Python UnicodeEncodeError kennen
# -*- coding:utf-8 -*-
#Überprüfen Sie den Standardwert, der auf der obigen Site angezeigt wird.
import sys, codecs
#Aus irgendeinem Grund kann es sein, dass der in der nächsten Zeile nicht bestanden wird. Ist es ein Versionsproblem?#sys.stdout = codecs.EncodedFile(sys.stdout, 'utf_8')
sys.stdout = codecs.lookup(u'utf_8')[-1](sys.stdout)
print "sys.getdefaultencoding() => ",sys.getdefaultencoding()
print "sys.stdout.encoding => ",sys.stdout.encoding
#Test von hier
alist = [ u"Unicode-Japanisch", u"Korrekt"]
for st in alist :
print st
print u"{0}{1}".format(*alist)
print map(str,alist)
Das Folgende ist die Ausgabe.
sys.getdefaultencoding() => ascii
sys.stdout.encoding => UTF-8
Unicode-Japanisch
Korrekt
Es ist Unicode-Japanisch
---------------------------------------------------------------------------
UnicodeEncodeError Traceback (most recent call last)
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/IPython/utils/py3compat.pyc in execfile(fname, *where)
202 else:
203 filename = fname
--> 204 __builtin__.execfile(filename, *where)
/Users/yuuichi/test-print/test.py in <module>()
15 print u"{0}{1}".format(*alist)
16
---> 17 print map(str,alist)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-7: ordinal not in range(128)
Recommended Posts