我有一个显示
的脚本UnicodeEncodeError: 'ascii' codec can't encode character u'\u044e' in position 0: ordinal not in range(128)
行print ord(u), u
。我该如何运行该脚本?
我运行C:\Python27\pythonw.exe name.py
。
# -*- encoding: utf-8 -*-
print "Russian letters".center(18*4)
i = 0
for c in "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"\
"абвгдежзийклмнопрстуфхцчшщъыьэюя":
u = unicode(c, 'koi8-r')
print ord(u), u
i += 1
if i % 4 == 0:
print
答案 0 :(得分:0)
如果本地编码不支持,则无法将unicode字符打印到Windows控制台。因此python尝试将其编码为ascii
并失败。有问题的一行是:
print ord(u), u
u
是一个unicode角色。你想要的可能是:
# -*- encoding: utf-8 -*-
print "Russian letters".center(18*4)
i = 0
for c in u"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"\
u"абвгдежзийклмнопрстуфхцчшщъыьэюя":
u = c.encode('koi8-r')
print ord(u), u
i += 1
if i % 4 == 0:
print
同时使用python.exe
用于控制台应用程序,而不是pythonw.exe