3

简单来说,如下代码:

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。

4

2 回答 2

5

open从模块中使用codecs将消除您手动编码的需要:

import codecs

with codecs.open('file.txt', 'w', encoding='utf-8') as f:
    f.write(u'Río Negro')

在 Python 3 中,此功能内置于标准open函数中:

with open('file.txt', 'w', encoding='utf-8') as f:
    f.write(u'Río Negro')
于 2013-06-04T17:02:13.283 回答
4

您需要对字符串进行编码。尝试这个:

f.write(u'Río Negro'.encode('utf-8'))
于 2013-06-04T16:56:55.833 回答