UnicodeEncodeError:希望使用 unicode 时的 ascii

发布于 2024-10-21 21:08:39 字数 419 浏览 3 评论 0原文

我正在尝试这样的事情:

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 上出现异常。

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

请帮忙,

巴里

I'm trying something like this:

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

and getting the error:

UnicodeEncodeError: 'ascii' codec can't encode character '/x4e'.

why is an ascii encoder being used?

Am I right in saying that my string (str(sentence)) is in unicode? Then why is it not simply encoded as utf-8 when writen to file? This code gives no exception when run on ubuntu and windows, with the exception occuring on mac os x.

Seems to me that ascii is being used by default somewhere on my mac even though i explicitly state the use of utf-8

Please help,

Barry

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蔚蓝源自深海 2024-10-28 21:08:39

str() 返回一个字符串 yes。并且 str 在写入时会被编码,是的。
我不完全确定为什么使用 ascii 编码(它是 Python 2 中的默认编码,但不是 Python 3 中的默认编码),但我更不确定为什么要这样做 str(sentence)。如果您想解码字节,则不使用 str(),而是使用 .decode()。因此,首先删除 str() 调用。

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

str() returns a string yes. And a str will be encoded when written, yes.
I'm not entirely sure why the ascii encoding is being used (it is the default encoding in Python 2, but not in Python 3), but I'm even less sure why you do str(sentence). If you want to decode bytes you don' use str() you use .decode(). So start with removing the str() call.

You don't give a full traceback, but I'm guessing that it's the str(sentence) that gives the error.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文