J'ai besoin de contrôler un programme en envoyant des commandes en encodage utf-8 à son entrée standard. Pour cela, je lance le programme en utilisant subprocess.Popen()
:communiquer avec un processus dans utf-8 sur une console cp1252
proc = Popen("myexecutable.exe", shell=True, stdin=PIPE, stdout=PIPE, stderr=PIPE)
proc.stdin.write(u'ééé'.encode('utf_8'))
Si je lance ce à partir d'une console Cygwin utf-8, cela fonctionne. Si je l'exécute à partir d'une console Windows (encoding = 'cp1252') cela ne fonctionne pas. Y at-il un moyen de faire ce travail sans avoir à installer une console cygwin utf-8 sur chaque ordinateur que je veux qu'il fonctionne? (NB: Je ne pas besoin de quoi que ce soit de sortie à la console)
Je ne suis pas sûr de comprendre. La console Windows ne peut pas gérer Unicode. Comment comptez-vous le forcer à le gérer? –
Vous avez raison, mais comme je n'ai pas besoin de la console Windows, j'aimerais savoir si je pourrais exécuter mes programmes en dehors de la console Windows et les faire communiquer ensemble dans utf-8. En effet, je n'ai pas besoin de sortir quoi que ce soit sur la console. – Mapad