2010-11-22 17 views
2

int PyRun_SimpleString(const char *command) ist die Funktion, die einen Befehl von Python ausführen kann.Ausführen von Python-Befehl aus C-Code mit spezifischer Codierung

Ich rufe diese Funktion in meinem Programm, aber wie kann ich die Codierung des command Arguments angeben. Ich fand, dass Python 3 UTF-8 als Standardcodierung verwendet, wenn ich einen Befehl ausführe. Kann ich diese Codierung in der C-Level-API ändern? ... oder mit einem zusätzlichen Parameter beim Aufruf PyRun_SimpleString -ähnliche Funktion?

Antwort

3

Sie können in PEP 263 auf Ihren Befehl beschrieben eine der „magischen Kommentare“ voranstellen:

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

Gut, OK, das ist in der Tat eine Abhilfe. – winterTTr

+0

Aber ich denke, das ist ein wenig unbequem, oder? Und ich möchte nur einen Weg, um die Codierung auf einmal zu spezifizieren, und ich kann es für immer verwenden, gibt es diese Art von Funktion? – winterTTr

+0

@winterTTr, meines Wissens, das ist der einzige Weg, es zu tun ... –

Verwandte Themen