gpt4 book ai didi

Python Unicode 对象和 C API(从 pyunicode 对象中检索 char*)

转载 作者:太空狗 更新时间:2023-10-29 18:23:35 25 4
gpt4 key购买 nike

我目前正在将我所有的 C++ 引擎类绑定(bind)到 python 以用于游戏脚本编写。最新的挑战是,当假设您在脚本中将变量设为字符串时,例如

string = 'hello world'

这成为一个 PyUnicodeObject。接下来,我们要从绑定(bind)的 C 端函数调用脚本中此对象的函数。 PrintToLog( string ),举个例子,假设这个 c 函数是这样的

void PrintToLog( const char * thisString )
{
//file IO stuff as expected
myLog << thisString;
//more stuff involving fileIO
}

所以我的绑定(bind)需要从 PyUnicodeObject 中提取一个 char * ,它首先由 python 传递给我的通用函数处理程序,后者又将 pyobjects 提取并转换为正确的 c 端类型并将其传递给我的功能。

我能找到的唯一函数是提取一个 wchar_t*... 因为我们将只使用 ascii 字符集,所以无论如何都可以获得 ascii 表示。

编辑:我使用的是 Python 3.2,其中所有字符串都是 unicode

最佳答案

我在使用 Python3 时遇到了类似的问题。我是这样解决的。

如果你有一个 PyUnicodeObject “mystring”,做类似的事情

PyObject * ascii_mystring=PyUnicode_AsASCIIString(mystring);
PrintToLog(PyBytes_AsString(ascii_mystring));
Py_DECREF(ascii_mystring);

PyBytes 解释 here .

关于Python Unicode 对象和 C API(从 pyunicode 对象中检索 char*),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6783493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com