gpt4 book ai didi

Python 程序在 Windows 上失败但在 Linux 上不会

转载 作者:太空狗 更新时间:2023-10-30 02:17:48 25 4
gpt4 key购买 nike

下面的程序在我的 Windows 10 机器(运行 Python 3.5.2)上触发了 UnicodeEncodeError,但在我的 Linux 机器(运行 Python 3.3.2)上完全没有错误。

#!/usr/bin/python
import logging
str ="Antonín Dvořák"
logging.basicConfig(filename='log.txt', level=logging.INFO)
logging.info(str)

在 Linux 上,日志文件正确包含:

INFO:root:Antonín Dvořák

在 Windows 上,我收到以下错误:

enter image description here

关于造成这种差异的可能原因有什么想法吗?

最佳答案

Windows 的默认编码(在您的情况下为 cp1252)与 Linux(通常为 utf8)不同,因此您必须指定所需的编码。

以下在 Python 3.3 中不起作用(仍然使用 cp1252),但在 3.5 中起作用,所以它看起来像是 3.3 中的错误。我使用了 utf-8-sig,因为许多 Windows 文本编辑器默认使用 ANSI 编码(例如 cp1252)而没有 UTF-8 BOM 签名。

import logging
str ="Antonín Dvořák"
with open('log.txt','w',encoding='utf-8-sig') as s:
logging.basicConfig(stream=s, level=logging.INFO)
logging.info(str)

关于Python 程序在 Windows 上失败但在 Linux 上不会,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39112761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com