このような質問が以前に出されたことは承知しています。しかし、私は解決策を見つけていません。
私の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 で実行していますが、ソリューションをプラットフォームに依存しないようにしたいと考えています。