Python错误“ascii编解码器无法编码字符...”

时间:2013-08-11 19:51:23

标签: python unicode

我有一个显示

的脚本
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

1 个答案:

答案 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