我第一次嘗試使用我的一個Python腳本處理Windows(Vista)上的unicode字符,並發現它不起作用。該腳本在Linux和OS X上運行得非常好,但在Windows上沒有任何喜悅。這裏是我試過的小腳本:在Windows中處理unicode字符串
#!/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>
我碰到this Python-wiki,並從那裏嘗試了一些東西,但那個沒有工作。有誰知道我還缺少什麼?任何幫助不勝感激。乾杯!!
這是一個從Python 3開始的例子,它比Python 2更清楚Unicode字節和字節。 –