簡單地說,下面的代碼:如何Unicode文本寫入一個Python文件對象
f.write(u'Río Negro')
引發以下錯誤:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xed' in position 1: ordinal not in range(128)
我能做些什麼?
我正在使用Python 2.7.3。
簡單地說,下面的代碼:如何Unicode文本寫入一個Python文件對象
f.write(u'Río Negro')
引發以下錯誤:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xed' in position 1: ordinal not in range(128)
我能做些什麼?
我正在使用Python 2.7.3。
您需要對您的字符串進行編碼。試試這個:
f.write(u'Río Negro'.encode('utf-8'))
它工作,謝謝! –
它假設'f'是一個二進制文件(在Python 3中爲''wb''模式)。 – jfs
import codecs
with codecs.open('file.txt', 'w', encoding='utf-8') as f:
f.write(u'Río Negro')
在Python 3,該功能內置於the standard open
function:
with open('file.txt', 'w', encoding='utf-8') as f:
f.write(u'Río Negro')
這個。在Python 3中,這個功能是由內置的open()提供的。 –
應該使用'io.open()'而不是'codecs.open()'。它的行爲與Python 3上的open()相同(其中'io.open打開了')。 – jfs
在字符串上使用.encode('utf-8')? – astreal
你可以用你的錯誤代碼搜索SO,結果有1,750多個結果... – dda