gpt4 book ai didi

带有 utf-8 和 nohup 的 python 打印语句

转载 作者:太空狗 更新时间:2023-10-29 17:05:40 25 4
gpt4 key购买 nike

我有一些 python 代码可以打印日志消息。在命令行运行时,它可以很好地使用 utf-8。包含特殊字符的日志消息可以正常打印。但是,当在 nohup 下在后台运行时,它会吐出 utf-8 字符。

nohup python2.7 myProgram.py &

我看到的错误是常见的“try to encode utf in ascii”错误:

UnicodeEncodeError: 'ascii' codec can't encode character u'\u2013' in position 71: ordinal not in range(128)

我假设这是因为 nohup 向 python 发出信号,表明它没有普通终端,所以它默认为 ascii。有什么方法可以告诉 nohup 在启用 utf-8 的情况下运行,或者设置它以便 utf-8 字符在后台运行时不会导致崩溃?

最佳答案

使用PYTHONIOENCODING :

export PYTHONIOENCODING=utf-8
nohup python2.7 myProgram.py &

例如,如果

我的程序.py:

unicode_obj=u'\N{INFINITY}'
print(unicode_obj)

然后运行

nohup python2.7 myProgram.py > /tmp/test &

产生

/tmp/test:

UnicodeEncodeError: 'ascii' codec can't encode character u'\u221e' in position 0: ordinal not in range(128)

同时

export PYTHONIOENCODING=utf-8
nohup python2.7 myProgram.py > /tmp/test &

产生

/tmp/test:


关于带有 utf-8 和 nohup 的 python 打印语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5626960/

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