【发布时间】:2010-11-02 07:27:59
【问题描述】:
在我了解了 Python 3.0 Web 脚本中的 reading unicode 文件之后,现在是我学习将 print() 与 unicode 结合使用的时候了。
我搜索了写 unicode,例如 this question 解释说您不能将 unicode 字符写入非 unicode 控制台。但是,在我的例子中,输出是给 Apache 的,我确信它能够处理 unicode 文本。然而,出于某种原因,我的网络脚本的stdout 在ascii 中。
显然,如果我打开一个文件来写自己,我会做类似的事情
open(filename, 'w', encoding='utf8')
但由于我得到了一个开放的流,我求助于使用
sys.stdout.buffer.write(mytext.encode('utf-8'))
一切似乎都正常。这是否违反了一些良好行为规则或有任何意想不到的后果?
【问题讨论】:
-
如果使用
WriteConsoleW()等Win32 API,则可以编写当前(Windows)控制台编码不支持的Unicode字符。win-unicode-consolePython package mentioned below 为您服务。虽然它与 Apache 无关。
标签: unicode cgi python-3.x