UnicodeEncodeError:ascii当希望使用unicode时

时间:2011-03-12 08:55:12

标签: macos unicode utf-8 python-3.x

我正在尝试这样的事情:

outFile = open("file.txt", "wt",encoding='utf-8')
outFile.write(str(sentence))
outFile.close()

并收到错误:

UnicodeEncodeError:'ascii'编解码器无法编码字符'/ x4e'。

为什么要使用ascii编码器?

我是否正确地说我的字符串(str(句子))是unicode?那么为什么写入文件时不能简单地编码为utf-8?在ubuntu和windows上运行时,此代码没有异常,但在mac os x上发生异常。

对我来说,即使我明确声明使用utf-8

,我的mac上某处默认使用ascii

请帮忙,

百里

1 个答案:

答案 0 :(得分:0)

str()返回一个字符串yes。编写时会编码str,是的。 我不完全确定为什么使用ascii编码(它是Python 2中的默认编码,但不是Python 3中的默认编码),但我甚至不确定你为什么要str(sentence)。如果您要解码字节,则不要使用str(),而是使用.decode()。首先,请删除str()来电。

你没有提供完整的追溯,但我猜这是str(sentence)给出了错误。