Впервые я попробовал один из моих скриптов Python, который работает с символами юникода, в Windows (Vista) и обнаружил, что он не работает. Сценарий прекрасно работает на Linux и OS X, но не радует Windows. Вот маленький скрипт, который я пробовал:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os, sys, codecs
reload(sys)
sys.setdefaultencoding('utf-8')
print "\nDefault encoding\t: %s" % sys.getdefaultencoding()
print "sys.stdout.encoding\t: %s\n" % sys.stdout.encoding
## Unicode strings
ln1 = u"?0>9<8~7|65\"4:3}2{1+_)(*&^%$£@!/`\\][=-"
ln2 = u"mnbvc xzasdfghjkl;'poiuyàtrewq€é#¢."
refStr = u"%s%s" % (ln2,ln1)
print "refSTR: ", refStr
for x in refStr:
print "%s => %s" % (x, ord(u"%s" % x))
Когда я запускаю скрипт из интерфейса командной строки Windows, я получаю эту ошибку:
C:\Users\san\Scripts>python uniCode.py
Default encoding : utf-8
sys.stdout.encoding : cp850
refSTR; Traceback (most recent call last):
File "uniCode.py", line 18, in <module>
print "refSTR; ", refStr
File "C:\Python27\lib\encodings\cp850.py", line 12, in encode
return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character u'\u20ac' in position
30: character maps to <undefined>
Я наткнулся на эту Python-вики и попробовал несколько вещей оттуда, но это не сработало. Кто-нибудь знает, что мне все еще не хватает? Любая помощь с благодарностью. Ура !!