запустить команду python из кода C с определенной кодировкой - PullRequest
2 голосов
/ 22 ноября 2010

int PyRun_SimpleString(const char *command) - это функция, которая может запускать команду Python.

Я вызываю эту функцию в своей программе, но как я могу указать кодировку аргумента command.Я обнаружил, что Python 3, по-видимому, использует UTF-8 в качестве кодировки по умолчанию, когда я запускаю команду.Могу ли я изменить эту кодировку в API уровня C?... или с дополнительным параметром при вызове PyRun_SimpleString -подобной функции?

1 Ответ

3 голосов
/ 22 ноября 2010

Вы можете добавить к вашей команде один из «волшебных комментариев», описанных в PEP 263 :

char buf[1024];
snprintf(buf, sizeof(buf), "-*- coding: %s -*-\n", yourEncoding);
strncat(buf, yourCommand, sizeof(buf) - strlen(buf) - 1);
PyRun_SimpleString(buf);
...