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

发布于 2024-10-04 05:43:05 字数 251 浏览 2 评论 0原文

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

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

int PyRun_SimpleString(const char *command)
is the function which can run a command of Python.

I call this function in my program, but how can I specify the encoding of the command argument. I found that Python 3 seems to use UTF-8 as the default encoding when I run a command. Can I change this encoding in the C level API? ...or with an extra parameter when call PyRun_SimpleString-like function?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

晨与橙与城 2024-10-11 05:43:05

您可以将 PEP 263 中描述的“神奇注释”之一添加到您的命令:

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

You can prepend one of the "magic comments" described in PEP 263 to your command:

char buf[1024];
snprintf(buf, sizeof(buf), "-*- coding: %s -*-\n", yourEncoding);
strncat(buf, yourCommand, sizeof(buf) - strlen(buf) - 1);
PyRun_SimpleString(buf);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文