2010-11-22 112 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