Pythonで書かれたxmppボットがあります。そのプラグインの 1 つは、OS コマンドを実行し、ユーザーに出力を送信できます。私が知る限り、出力は xmpp プロトコルで送信するために Unicode に似ている必要があります。だから私はそれをこのように処理しようとしました:
output = os.popen(cmd).read()
if not isinstance(output, unicode):
output = unicode(output,'utf-8','ignore')
bot.send(xmpp.Message(mess.getFrom(),output))
しかし、ロシア語の記号が出力に現れると、うまく変換されません。
sys.getdefaultencoding()
デフォルトのコマンドプロンプトエンコーディングは「ascii」であると言われていますが、やろうとすると
output.decode('ascii')
pythonコンソールで私は得る
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0x92 in position 1:
ordinal not in range(128)
OS: Win XP、Python 2.5.4 PS: 私の英語でごめんなさい :(