2010-11-22 97 views
2

int PyRun_SimpleString(const char *command) 是可以运行Python命令的函数。从具有特定编码的C代码运行python命令

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

回答

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); 
+0

嗯,好吧,那确实是一个解决办法。 – winterTTr 2010-11-22 09:55:34

+0

但我认为这有点不方便,对吧?我只想要一种特定编码的方式,我可以永远使用它,有没有这种功能? – winterTTr 2010-11-22 09:57:20

+0

@winterTTr,据我所知,这是做到这一点的唯一方法...... – 2010-11-22 10:04:18