La conversion de format ascii vers le format utf-8 avec Python

J'ai xmpp bot écrit en python. L'un de ses plugins est capable d'exécuter des OS les commandes et envoyer la sortie à l'utilisateur. Autant que je sache, la sortie doit être en unicode comme pour l'envoyer sur le protocole xmpp. J'ai donc essayé de manipuler de cette façon:

output = os.popen(cmd).read() 
if not isinstance(output, unicode):
   output = unicode(output,'utf-8','ignore')
bot.send(xmpp.Message(mess.getFrom(),output))

Mais lorsque russe symboles apparaissent dans la sortie ils ne sont pas convertis.

sys.getdefaultencoding() 

dit que par défaut l'invite de commande de codage est 'ascii', mais quand j'essaie de faire

output.decode('ascii') 

dans la console python-je obtenir

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)

Système d'exploitation: Win XP, Python 2.5.4
PS: Désolé pour mon anglais 🙁

Avez-vous essayé de sortie output = output.encode("utf-8') ?
Évolution de la production.decode('866') m'a aidé. Mais locale.getpreferredencoding(do_setlocale=True) retourné cp1251. Est-il un autre moyen de déterminer le codage? Parce que ce bot devrait fonctionner sous linux ainsi
Erm... ASCII est déjà un parfait sous-ensemble de l'UTF-8! Tout texte ASCII est, par définition, un texte UTF-8. C'est le contraire, l'intention ici ou est-colriot demandant de le convertir en un autre encodage UTF-8?

OriginalL'auteur colriot | 2010-02-14