我有用 python 编写的 xmpp bot。它的插件之一能够执行操作系统命令并将输出发送给用户。据我所知,输出应该是类似 unicode 的,以便通过 xmpp 协议发送。所以我试着这样处理:
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)
操作系统:Win XP,Python 2.5.4 PS:对不起我的英语:(