處理Unicode字符我寫了下面的代碼寫的內容文件,問題與蟒蛇
with codecs.open(name,"a","utf8") as myfile:
myfile.write(str(eachrecord[1]).encode('utf8'))
myfile.write(" ")
myfile.write(str(eachrecord[0]).encode('utf8'))
myfile.write("\n")`
寫Unicode字符時,上面的代碼不能正常工作....即使我我正在使用編解碼器並進行編碼。我不斷收到錯誤
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe1' in position 6: ordinal not in range(128)
任何人都可以看到我在哪裏做錯了嗎?
編輯:
with codecs.open(name,"a","utf8") as myfile:
myfile.write(unicode(eachrecord[1]))
myfile.write(" ")
myfile.write(unicode(eachrecord[0]))
myfile.write("\n")
這worked..Thanks所有快速意見和answers..that確實有幫助..我不知道,Python有「統一」選項,直到你們告訴我
是什麼類型'eachrecord [1]'? 'str'讓我覺得亂七八糟,用'unicode'代替。 – Fenikso 2012-04-26 16:12:56
而且我認爲你甚至不必編碼unicode字符串,因爲使用編解碼器打開的文件應該處理它。 – Fenikso 2012-04-26 16:14:22
eachrecord [1]可以是字符串或數字 – kich 2012-04-26 16:14:39