2011-03-12 35 views
0

我想是这样的:UnicodeEncodeError:ASCII希望使用Unicode时

 
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上发生异常。

在我看来,ASCII正在使用默认的地方在我的Mac,即使我明确说明使用UTF-8的

请帮帮忙,

巴里

回答

0

str()返回一个字符串是。一个str在编写时会被编码,是的。 我并不完全确定为什么使用ascii编码(它是Python 2中的默认编码,但不是Python 3中的编码),但我更不确定为什么要使用str(sentence)。如果你想解码字节,你不使用str()你使用.decode()。所以开始删除str()电话。

你没有给出完整的追溯,但我猜测它是给出错误的str(sentence)