使用特定编码从C代码运行python命令

时间:2010-11-22 09:45:59

标签: python c encoding python-3.x embed

int PyRun_SimpleString(const char *command)   是可以运行Python命令的函数。

我在程序中调用了这个函数,但是如何指定command参数的编码。我发现Python 3在运行命令时似乎使用UTF-8作为默认编码。我可以在C级API中更改此编码吗? ...或者在调用PyRun_SimpleString时使用额外的参数 - 就像函数一样?

1 个答案:

答案 0 :(得分:3)

您可以将PEP 263中描述的其中一个“魔术评论”添加到您的命令中:

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