【问题标题】:UnicodeEncodeError: ascii when wishing to use unicodeUnicodeEncodeError: ascii 希望使用 unicode
【发布时间】:2011-07-13 23:41:52
【问题描述】:

我正在尝试这样的事情:

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

并得到错误:

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

为什么要使用 ascii 编码器?

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

在我看来,我的 mac 上的某个地方默认使用 ascii,即使我明确声明使用 utf-8

请帮忙,

巴里

【问题讨论】:

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


    【解决方案1】:

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

    您没有给出完整的回溯,但我猜是 str(sentence) 给出了错误。

    【讨论】:

      猜你喜欢
      • 2013-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-04
      • 2014-05-31
      • 1970-01-01
      • 1970-01-01
      • 2012-04-27
      相关资源
      最近更新 更多