我知道以前有人问过这样的问题。但我没有找到解决方案。
我想使用在我的 python 文件中定义的 unicode 文字和 subprocess 模块。但我没有得到我需要的结果。例如下面的代码
# -*- coding: utf-8 -*-
import sys
import codecs
import subprocess
cmd = ['echo', u'你好']
new_cmd = []
for c in cmd:
if isinstance(c,unicode):
c = c.encode('utf-8')
new_cmd.append(c)
subprocess.call(new_cmd)
打印出来
ä½ å¥½
如果我将代码更改为
# -*- coding: utf-8 -*-
import sys
import codecs
import subprocess
cmd = ['echo', u'你好']
new_cmd = []
for c in cmd:
if isinstance(c,unicode):
c = c.encode(sys.getfilesystemencoding())
new_cmd.append(c)
subprocess.call(new_cmd)
我得到以下
??
在这个阶段,我只能假设我反复犯了一个简单的错误。但我很难弄清楚它是什么。通过python的子进程调用时,如何让echo打印出以下内容
你好
编辑:
Python的版本是2.7。我在 Windows 8 上运行,但我希望解决方案独立于平台。