2010-11-22 14 views
2

int PyRun_SimpleString(const char *command) は、Pythonのコマンドを実行できる機能です。特定のエンコードでCコードからpythonコマンドを実行

私のプログラムでこの関数を呼び出しますが、どのようにcommand引数のエンコーディングを指定できますか?私はコマンドを実行するとき、Python 3がデフォルトのエンコーディングとしてUTF-8を使用しているようです。このエンコードをCレベルのAPIで変更できますか? ...またはPyRun_SimpleStringのような関数を呼び出すときに追加のパラメータを指定しますか?

答えて

3

あなたはあなたのコマンドにPEP 263に記載の「魔法のコメント」の1前に付加することができます

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

まあ、OK、それは確かに回避策です。 – winterTTr

+0

しかし、これはちょっと不便だと思いますよね?そして、私はちょうど一度に特定のエンコーディングへの方法を望んで、私はそれを永遠に使うことができます、この種の機能はありますか? – winterTTr

+0

@winterTTr、私の知る限り、それを行う唯一の方法です... –

関連する問題