gpt4 book ai didi

unicode - Python 3是使用sys.stdout.buffer.write()好的样式吗?

转载 作者:行者123 更新时间:2023-12-04 14:37:06 24 4
gpt4 key购买 nike

在我了解了Python 3.0 Web脚本中的reading unicode文件之后,现在该是我学习将print()与unicode一起使用的时候了。

我搜索了编写unicode的代码,例如this question解释说您不能将unicode字符写入非unicode控制台。但是,就我而言,输出是提供给Apache的,我确信它能够处理unicode文本。但是由于某种原因,我的Web脚本的stdoutascii中。

显然,如果我打开一个文件来写自己,我会做类似的事情

open(filename, 'w', encoding='utf8')

但是由于提供了开放流,所以我求助于
sys.stdout.buffer.write(mytext.encode('utf-8'))

一切似乎都正常。这是否违反了良好行为准则或有任何意想不到的后果?

最佳答案

我认为您没有违反任何规则,但是

sys.stdout = codecs.EncodedFile(sys.stdout, 'utf8')

看起来可能更方便/不太笨重。

编辑:根据评论,这不太正确-@Miles提供了正确的变体(谢谢!):
sys.stdout = codecs.getwriter('utf8')(sys.stdout.buffer) 

编辑:如果您可以安排在Apache启动脚本时将环境变量 PYTHONIOENCODING设置为utf8,那会更好,使 sys.stdout自动设置为 utf8;但是如果这不可行或不切实际,那么 codecs解决方案就可以了。

关于unicode - Python 3是使用sys.stdout.buffer.write()好的样式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/984014/

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