Нельзя использовать os.system с «æ», «ø» или «å» - PullRequest
1 голос
/ 07 февраля 2020

Я пытаюсь выполнить скрипт .vbs из моего python скрипта, используя os.system().

Это так

# -*-coding:utf-8 -*-
import os
os.system('cscript myVbsScript.vbs -i "This is a test" "1000" "æøå"')

"æøå" не передается правильно.

При использовании:

os.system(u'cscript myVbsScript.vbs -i "This is a test" "1000" "æøå"')

Я получаю ошибку:

os.system(u'cscript myVbsScript.vbs 10000 "This is a test" "1000" "æøå"')
UnicodeEncodeError: 'ascii' codec can't encode characters in position 55-57: ordinal not in range(128)`

Когда я не пытаюсь использовать "æøå" в os.system, тогда это работает как чудо - поэтому я боюсь, что проблема с os.system.

Любой идея как решить проблему?

Ответы [ 2 ]

1 голос
/ 07 февраля 2020

Вы должны закодировать вашу строку (обновленный тип кодировки):

os.system(u'cscript myVbsScript.vbs -i "This is a test" "1000" "æøå"'.encode("iso-8859-1"))
0 голосов
/ 07 февраля 2020

Решение:

# -*-coding:utf-8 -*-
import os
os.system(u'cscript myVbsScript.vbs -i "This is a test" "1000" "æøå"'.encode('iso-8859-1')

.vbs-скрипт не может прочитать кодировку utf-8.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...